Repository: autonomys/auto-drive
Pull request #276: update: client rpc api
Author: login: clostao
Created: 2025-04-01T06:02:33Z | Merged: 2025-04-02T22:51:29Z

Update WS client to type-safe RPC api


Diff:
diff --git a/.github/workflows/services.yml b/.github/workflows/services.yml
index 3419a6dc2..6c71c2710 100644
--- a/.github/workflows/services.yml
+++ b/.github/workflows/services.yml
@@ -22,6 +22,8 @@ jobs:
     steps:
       - name: Checkout repository
         uses: actions/checkout@v3
+        with:
+          submodules: true
 
       - name: Set up Node.js
         uses: actions/setup-node@v3
@@ -35,7 +37,7 @@ jobs:
         run: corepack use yarn@4.2.2
 
       - name: Build common
-        run: yarn models build
+        run: make common
 
       - name: Run lint
         run: yarn lint
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..567268b10
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "files-gateway"]
+	path = submodules/files-gateway
+	url = https://github.com/autonomys/auto-files-gateway.git
+	branch = tags/v1.0.0
diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz
index fdb5c6f20..754553f8f 100644
Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..3fe69dda1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+backend:
+	yarn backend build
+models:
+	yarn models build
+frontend:
+	yarn frontend build
+gateway:
+	yarn gateway build
+
+submodules:
+	git submodules update --init --recursive
+	yarn auto-files-gateway install
+	yarn auto-files-gateway build
+
+common: submodules models
+
+test:
+	yarn backend test
+	yarn auth test
+
+lint:
+	yarn backend lint
+	yarn auth lint
+	yarn frontend lint
+
+all: submodules models frontend gateway backend
\ No newline at end of file
diff --git a/backend/package.json b/backend/package.json
index c93deea3d..06b781daa 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -15,10 +15,12 @@
   },
   "dependencies": {
     "@auto-drive/models": "workspace:*",
+    "@auto-files/rpc-apis": "workspace:*",
     "@autonomys/asynchronous": "^1.4.1",
     "@autonomys/auto-dag-data": "^1.0.8",
     "@autonomys/auto-drive": "^1.0.5",
     "@autonomys/file-caching": "^1.4.3",
+    "@autonomys/rpc": "^1.4.11",
     "@keyvhq/sqlite": "^2.1.6",
     "@polkadot/api": "^15.8.1",
     "@polkadot/types": "^15.8.1",
diff --git a/backend/src/repositories/objects/nodes.ts b/backend/src/repositories/objects/nodes.ts
index d6f6da80b..63a3f4dcc 100644
--- a/backend/src/repositories/objects/nodes.ts
+++ b/backend/src/repositories/objects/nodes.ts
@@ -209,12 +209,12 @@ const getUploadedNodesByRootCid = async (rootCid: string) => {
     .then((e) => e.rows)
 }
 
-const getFirstNotArchivedNode = async () => {
+const getLastArchivedPieceNode = async () => {
   const db = await getDatabase()
 
   return db
     .query<Node>({
-      text: 'SELECT * FROM nodes WHERE piece_index IS NOT NULL AND piece_offset IS NOT NULL LIMIT 1',
+      text: 'SELECT * FROM nodes WHERE piece_index IS NOT NULL AND piece_offset IS NOT NULL ORDER BY block_published_on DESC LIMIT 1',
     })
     .then((e) => e.rows.at(0))
 }
@@ -232,5 +232,5 @@ export const nodesRepository = {
   getNodesByCids,
   updateNodePublishedOn,
   getUploadedNodesByRootCid,
-  getFirstNotArchivedNode,
+  getLastArchivedPieceNode,
 }
diff --git a/backend/src/services/dsn/objectMappingListener/index.ts b/backend/src/services/dsn/objectMappingListener/index.ts
index e409002ef..8a76101d6 100644
--- a/backend/src/services/dsn/objectMappingListener/index.ts
+++ b/backend/src/services/dsn/objectMappingListener/index.ts
@@ -1,68 +1,50 @@
-import { z } from 'zod'
-import { ObjectMappingListEntrySchema } from '@auto-drive/models'
 import { NodesUseCases } from '../../../useCases/index.js'
 import { config } from '../../../config.js'
 import { logger } from '../../../drivers/logger.js'
 import { nodesRepository } from '../../../repositories/index.js'
-import { createRpcClient } from '@autonomys/rpc'
+import { ObjectMappingIndexerRPCApi } from '@auto-files/rpc-apis'
 
-type RpcClient = ReturnType<typeof createRpcClient>
+type ObjectMappingIndexerRpcClient = ReturnType<
+  typeof ObjectMappingIndexerRPCApi.createClient
+>
 
 const start = async () => {
-  const ws = createRpcClient({
+  const initSubscription = async (client: ObjectMappingIndexerRpcClient) => {
+    const node = await nodesRepository.getLastArchivedPieceNode()
+
+    const pieceIndex = node?.piece_index ?? 0
+
+    logger.info(
+      `Subscribing to recover object mappings from piece ${pieceIndex}`,
+    )
+    await client.api.subscribe_recover_object_mappings({
+      pieceIndex,
+    })
+  }
+
+  const ws = ObjectMappingIndexerRPCApi.createClient({
     endpoint: config.objectMappingArchiver.url,
     reconnectInterval: 1_000,
     callbacks: {
-      onReconnection: () => initSubscription(ws),
-      onOpen: () => initSubscription(ws),
+      onReconnection: () => {
+        initSubscription(ws)
+      },
+      onOpen: () => {
+        initSubscription(ws)
+      },
     },
   })
 
-  ws.on(async (message) => {
-    const { data, success } = z
-      .object({
-        subscriptionId: z.string(),
-        result: ObjectMappingListEntrySchema,
-      })
-      .safeParse(message)
-
-    if (!success) {
-      console.error('Failed to parse object mapping list entry', data)
-      return
-    }
-
-    if (data.result.v0.objects.length > 0) {
+  ws.onNotification('object_mapping_list', async (message) => {
+    if (message.length > 0) {
       logger.info(
-        `Processing object mapping list entry of length ${data.result.v0.objects.length}`,
+        `Processing object mapping list entry of length ${message.length}`,
       )
-      await NodesUseCases.scheduleNodeArchiving(data.result.v0.objects)
+      await NodesUseCases.scheduleNodeArchiving(message)
     }
   })
 }
 
-const initSubscription = async (ws: RpcClient) => {
-  const SAFE_BLOCK_NUMBER_THRESHOLD = 100
-  const node = await nodesRepository.getFirstNotArchivedNode()
-
-  if (!node?.block_published_on) {
-    logger.info('Subscribing to real time object mappings')
-    await ws.send({
-      jsonrpc: '2.0',
-      method: 'subscribe_object_mappings',
-    })
-  } else {
-    const blockNumber = node.block_published_on
-    logger.info(`Subscribing to recover object mappings from ${blockNumber}`)
-    await ws.send({
-      jsonrpc: '2.0',
-      method: 'subscribe_recover_object_mappings',
-      params: {
-        blockNumber: blockNumber - SAFE_BLOCK_NUMBER_THRESHOLD,
-      },
-    })
-  }
-}
-
 export const objectMappingArchiver = {
   start,
 }
diff --git a/frontend/src/components/FileTables/common/ObjectDownloadModal.tsx b/frontend/src/components/FileTables/common/ObjectDownloadModal.tsx
index a14b4ed5a..6e180d82a 100644
--- a/frontend/src/components/FileTables/common/ObjectDownloadModal.tsx
+++ b/frontend/src/components/FileTables/common/ObjectDownloadModal.tsx
@@ -187,6 +187,7 @@ export const ObjectDownloadModal = ({
     );
   }, [
     metadata,
+    insecure,
     passwordOrNotEncrypted,
     passwordConfirmed,
     password,
diff --git a/package.json b/package.json
index c098f58cb..4e90711ef 100644
--- a/package.json
+++ b/package.json
@@ -11,14 +11,15 @@
     "auth",
     "gateway",
     "hasura",
-    "packages/*"
+    "packages/*",
+    "submodules/*"
   ],
   "scripts": {
     "build:backend": "yarn workspace backend build",
     "build:frontend": "yarn workspace frontend build",
     "build:auth": "yarn workspace auth build",
-    "build": "yarn workspaces foreach --all --exclude hasura run build",
-    "test": "yarn workspaces foreach --all --exclude hasura --exclude @auto-drive/models run test",
+    "build": "make all",
+    "test": "make test",
     "frontend": "yarn workspace frontend",
     "lint": "yarn workspaces foreach --all --exclude hasura --exclude @auto-drive/models run lint",
     "backend": "yarn workspace backend",
diff --git a/submodules/files-gateway b/submodules/files-gateway
new file mode 160000
index 000000000..c7e152e44
--- /dev/null
+++ b/submodules/files-gateway
@@ -0,0 +1 @@
+Subproject commit c7e152e44eb8be3e6568b7ffe115cee37caee33f
diff --git a/yarn.lock b/yarn.lock
index 531ab2234..29a2da5e9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -139,6 +139,27 @@ __metadata:
   languageName: unknown
   linkType: soft
 
+"@auto-files/models@workspace:*, @auto-files/models@workspace:submodules/files-gateway/common/models":
+  version: 0.0.0-use.local
+  resolution: "@auto-files/models@workspace:submodules/files-gateway/common/models"
+  dependencies:
+    "@autonomys/rpc": "npm:^1.4.9"
+    typescript: "npm:^5.6.3"
+    zod: "npm:^3.24.2"
+  languageName: unknown
+  linkType: soft
+
+"@auto-files/rpc-apis@workspace:*, @auto-files/rpc-apis@workspace:submodules/files-gateway/common/rpc-apis":
+  version: 0.0.0-use.local
+  resolution: "@auto-files/rpc-apis@workspace:submodules/files-gateway/common/rpc-apis"
+  dependencies:
+    "@auto-files/models": "workspace:*"
+    "@autonomys/rpc": "npm:^1.4.11"
+    typescript: "npm:^5.6.3"
+    zod: "npm:^3.24.2"
+  languageName: unknown
+  linkType: soft
+
 "@autonomys/asynchronous@npm:1.4.1, @autonomys/asynchronous@npm:^1.4.1":
   version: 1.4.1
   resolution: "@autonomys/asynchronous@npm:1.4.1"
@@ -146,6 +167,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@autonomys/asynchronous@npm:^1.4.11":
+  version: 1.4.11
+  resolution: "@autonomys/asynchronous@npm:1.4.11"
+  checksum: 10c0/b79facce0a4c91b06d4f60ebab07cb07d9be301fdcac0fe67d10dc063bc7f073dfafc07c562b659d445ed714ff1210d26c5903786a804b314de916b871734008
+  languageName: node
+  linkType: hard
+
 "@autonomys/asynchronous@npm:^1.4.3":
   version: 1.4.3
   resolution: "@autonomys/asynchronous@npm:1.4.3"
@@ -160,6 +188,25 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@autonomys/auto-dag-data@npm:^1.0.12, @autonomys/auto-dag-data@npm:^1.0.5":
+  version: 1.4.11
+  resolution: "@autonomys/auto-dag-data@npm:1.4.11"
+  dependencies:
+    "@autonomys/asynchronous": "npm:^1.4.11"
+    "@ipld/dag-pb": "npm:^4.1.3"
+    "@peculiar/webcrypto": "npm:^1.5.0"
+    "@webbuf/blake3": "npm:^3.0.26"
+    "@webbuf/fixedbuf": "npm:^3.0.26"
+    "@webbuf/webbuf": "npm:^3.0.26"
+    fflate: "npm:^0.8.2"
+    multiformats: "npm:^13.3.2"
+    protobufjs: "npm:^7.4.0"
+    protons: "npm:^7.6.0"
+    protons-runtime: "npm:^5.5.0"
+  checksum: 10c0/329e37225ddae62c01838d1f26529a2883f2fa78256846056794c36f375aa68c97ce6c7b0b5313c97cec8fdb35c8bdc1e55df1c407711bb9fecd88a864a23a5c
+  languageName: node
+  linkType: hard
+
 "@autonomys/auto-dag-data@npm:^1.0.7, @autonomys/auto-dag-data@npm:^1.0.8, @autonomys/auto-dag-data@npm:^1.3.1":
   version: 1.3.1
   resolution: "@autonomys/auto-dag-data@npm:1.3.1"
@@ -268,6 +315,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@autonomys/auto-utils@npm:^1.0.12":
+  version: 1.4.11
+  resolution: "@autonomys/auto-utils@npm:1.4.11"
+  dependencies:
+    "@polkadot/api": "npm:^15.8.1"
+    "@polkadot/extension-dapp": "npm:^0.58.6"
+    fs: "npm:^0.0.1-security"
+  checksum: 10c0/3d536bc049b50439e92148540aa020a1a18aadaced3467eea47f87488dfbd01530e697d00941169ec376f4b8e43978a649ebd516917d6a24b95142df0785c70f
+  languageName: node
+  linkType: hard
+
 "@autonomys/auto-utils@npm:^1.3.2":
   version: 1.3.4
   resolution: "@autonomys/auto-utils@npm:1.3.4"
@@ -331,6 +389,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@autonomys/rpc@npm:^1.4.11, @autonomys/rpc@npm:^1.4.9":
+  version: 1.4.11
+  resolution: "@autonomys/rpc@npm:1.4.11"
+  dependencies:
+    websocket: "npm:^1.0.35"
+    zod: "npm:^3.24.2"
+  checksum: 10c0/b3d0ba256431a6ca876a06a1a7724482b5cd5b72923cd948554e74c3b84526637300b1886c7a0c0cc47b5b4f243c3229daca8cecd32e89b64f58d8dd3b1163c1
+  languageName: node
+  linkType: hard
+
 "@autonomys/rpc@npm:^1.4.5":
   version: 1.4.5
   resolution: "@autonomys/rpc@npm:1.4.5"
@@ -1908,13 +1976,49 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
+"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.6.1":
   version: 4.12.1
   resolution: "@eslint-community/regexpp@npm:4.12.1"
   checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6
   languageName: node
   linkType: hard
 
+"@eslint/config-array@npm:^0.19.2":
+  version: 0.19.2
+  resolution: "@eslint/config-array@npm:0.19.2"
+  dependencies:
+    "@eslint/object-schema": "npm:^2.1.6"
+    debug: "npm:^4.3.1"
+    minimatch: "npm:^3.1.2"
+  checksum: 10c0/dd68da9abb32d336233ac4fe0db1e15a0a8d794b6e69abb9e57545d746a97f6f542496ff9db0d7e27fab1438546250d810d90b1904ac67677215b8d8e7573f3d
+  languageName: node
+  linkType: hard
+
+"@eslint/config-helpers@npm:^0.2.0":
+  version: 0.2.1
+  resolution: "@eslint/config-helpers@npm:0.2.1"
+  checksum: 10c0/3e829a78b0bb4f7c44384ba1df3986e5de24b7f440ad5c6bb3cfc366ded773a869ca9ee8d212b5a563ae94596c5940dea6fd2ea1ee53a84c6241ac953dcb8bb7
+  languageName: node
+  linkType: hard
+
+"@eslint/core@npm:^0.12.0":
+  version: 0.12.0
+  resolution: "@eslint/core@npm:0.12.0"
+  dependencies:
+    "@types/json-schema": "npm:^7.0.15"
+  checksum: 10c0/d032af81195bb28dd800c2b9617548c6c2a09b9490da3c5537fd2a1201501666d06492278bb92cfccac1f7ac249e58601dd87f813ec0d6a423ef0880434fa0c3
+  languageName: node
+  linkType: hard
+
+"@eslint/core@npm:^0.13.0":
+  version: 0.13.0
+  resolution: "@eslint/core@npm:0.13.0"
+  dependencies:
+    "@types/json-schema": "npm:^7.0.15"
+  checksum: 10c0/ba724a7df7ed9dab387481f11d0d0f708180f40be93acce2c21dacca625c5867de3528760c42f1c457ccefe6a669d525ff87b779017eabc0d33479a36300797b
+  languageName: node
+  linkType: hard
+
 "@eslint/eslintrc@npm:^2.1.4":
   version: 2.1.4
   resolution: "@eslint/eslintrc@npm:2.1.4"
@@ -1932,6 +2036,23 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@eslint/eslintrc@npm:^3.3.1":
+  version: 3.3.1
+  resolution: "@eslint/eslintrc@npm:3.3.1"
+  dependencies:
+    ajv: "npm:^6.12.4"
+    debug: "npm:^4.3.2"
+    espree: "npm:^10.0.1"
+    globals: "npm:^14.0.0"
+    ignore: "npm:^5.2.0"
+    import-fresh: "npm:^3.2.1"
+    js-yaml: "npm:^4.1.0"
+    minimatch: "npm:^3.1.2"
+    strip-json-comments: "npm:^3.1.1"
+  checksum: 10c0/b0e63f3bc5cce4555f791a4e487bf999173fcf27c65e1ab6e7d63634d8a43b33c3693e79f192cbff486d7df1be8ebb2bd2edc6e70ddd486cbfa84a359a3e3b41
+  languageName: node
+  linkType: hard
+
 "@eslint/js@npm:8.57.1":
   version: 8.57.1
   resolution: "@eslint/js@npm:8.57.1"
@@ -1939,6 +2060,30 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@eslint/js@npm:9.23.0":
+  version: 9.23.0
+  resolution: "@eslint/js@npm:9.23.0"
+  checksum: 10c0/4e70869372b6325389e0ab51cac6d3062689807d1cef2c3434857571422ce11dde3c62777af85c382b9f94d937127598d605d2086787f08611351bf99faded81
+  languageName: node
+  linkType: hard
+
+"@eslint/object-schema@npm:^2.1.6":
+  version: 2.1.6
+  resolution: "@eslint/object-schema@npm:2.1.6"
+  checksum: 10c0/b8cdb7edea5bc5f6a96173f8d768d3554a628327af536da2fc6967a93b040f2557114d98dbcdbf389d5a7b290985ad6a9ce5babc547f36fc1fde42e674d11a56
+  languageName: node
+  linkType: hard
+
+"@eslint/plugin-kit@npm:^0.2.7":
+  version: 0.2.8
+  resolution: "@eslint/plugin-kit@npm:0.2.8"
+  dependencies:
+    "@eslint/core": "npm:^0.13.0"
+    levn: "npm:^0.4.1"
+  checksum: 10c0/554847c8f2b6bfe0e634f317fc43d0b54771eea0015c4f844f75915fdb9e6170c830c004291bad57db949d61771732e459f36ed059f45cf750af223f77357c5c
+  languageName: node
+  linkType: hard
+
 "@faker-js/faker@npm:^9.2.0":
   version: 9.6.0
   resolution: "@faker-js/faker@npm:9.6.0"
@@ -2839,6 +2984,23 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@humanfs/core@npm:^0.19.1":
+  version: 0.19.1
+  resolution: "@humanfs/core@npm:0.19.1"
+  checksum: 10c0/aa4e0152171c07879b458d0e8a704b8c3a89a8c0541726c6b65b81e84fd8b7564b5d6c633feadc6598307d34564bd53294b533491424e8e313d7ab6c7bc5dc67
+  languageName: node
+  linkType: hard
+
+"@humanfs/node@npm:^0.16.6":
+  version: 0.16.6
+  resolution: "@humanfs/node@npm:0.16.6"
+  dependencies:
+    "@humanfs/core": "npm:^0.19.1"
+    "@humanwhocodes/retry": "npm:^0.3.0"
+  checksum: 10c0/8356359c9f60108ec204cbd249ecd0356667359b2524886b357617c4a7c3b6aace0fd5a369f63747b926a762a88f8a25bc066fa1778508d110195ce7686243e1
+  languageName: node
+  linkType: hard
+
 "@humanwhocodes/config-array@npm:^0.13.0":
   version: 0.13.0
   resolution: "@humanwhocodes/config-array@npm:0.13.0"
@@ -2864,6 +3026,20 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@humanwhocodes/retry@npm:^0.3.0":
+  version: 0.3.1
+  resolution: "@humanwhocodes/retry@npm:0.3.1"
+  checksum: 10c0/f0da1282dfb45e8120480b9e2e275e2ac9bbe1cf016d046fdad8e27cc1285c45bb9e711681237944445157b430093412b4446c1ab3fc4bb037861b5904101d3b
+  languageName: node
+  linkType: hard
+
+"@humanwhocodes/retry@npm:^0.4.2":
+  version: 0.4.2
+  resolution: "@humanwhocodes/retry@npm:0.4.2"
+  checksum: 10c0/0235525d38f243bee3bf8b25ed395fbf957fb51c08adae52787e1325673071abe856c7e18e530922ed2dd3ce12ed82ba01b8cee0279ac52a3315fcdc3a69ef0c
+  languageName: node
+  linkType: hard
+
 "@ipld/dag-pb@npm:^4.1.2, @ipld/dag-pb@npm:^4.1.3":
   version: 4.1.3
   resolution: "@ipld/dag-pb@npm:4.1.3"
@@ -3225,6 +3401,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@keyvhq/core@npm:^2.1.1":
+  version: 2.1.7
+  resolution: "@keyvhq/core@npm:2.1.7"
+  dependencies:
+    json-buffer: "npm:~3.0.1"
+  checksum: 10c0/fbc8590ae3cccc8ef19b21b7a2f5be0c8aa26281c3121648cb4eea876699c8cd401b3e1b6f3e16a5c3b14753b6591c7024b0dcebe0451f9ec6f227bcba47ce50
+  languageName: node
+  linkType: hard
+
 "@keyvhq/sql@npm:2.1.7":
   version: 2.1.7
   resolution: "@keyvhq/sql@npm:2.1.7"
@@ -3468,6 +3653,83 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@oven/bun-darwin-aarch64@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-darwin-aarch64@npm:1.2.8"
+  conditions: os=darwin & cpu=arm64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-darwin-x64-baseline@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-darwin-x64-baseline@npm:1.2.8"
+  conditions: os=darwin & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-darwin-x64@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-darwin-x64@npm:1.2.8"
+  conditions: os=darwin & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-linux-aarch64-musl@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-linux-aarch64-musl@npm:1.2.8"
+  conditions: os=linux & cpu=aarch64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-linux-aarch64@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-linux-aarch64@npm:1.2.8"
+  conditions: os=linux & cpu=arm64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-linux-x64-baseline@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-linux-x64-baseline@npm:1.2.8"
+  conditions: os=linux & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-linux-x64-musl-baseline@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-linux-x64-musl-baseline@npm:1.2.8"
+  conditions: os=linux & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-linux-x64-musl@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-linux-x64-musl@npm:1.2.8"
+  conditions: os=linux & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-linux-x64@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-linux-x64@npm:1.2.8"
+  conditions: os=linux & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-windows-x64-baseline@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-windows-x64-baseline@npm:1.2.8"
+  conditions: os=win32 & cpu=x64
+  languageName: node
+  linkType: hard
+
+"@oven/bun-windows-x64@npm:1.2.8":
+  version: 1.2.8
+  resolution: "@oven/bun-windows-x64@npm:1.2.8"
+  conditions: os=win32 & cpu=x64
+  languageName: node
+  linkType: hard
+
 "@panva/hkdf@npm:^1.0.2":
   version: 1.2.1
   resolution: "@panva/hkdf@npm:1.2.1"
@@ -3619,6 +3881,21 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/api-augment@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/api-augment@npm:15.9.1"
+  dependencies:
+    "@polkadot/api-base": "npm:15.9.1"
+    "@polkadot/rpc-augment": "npm:15.9.1"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-augment": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/5d91cc9f0f008e95ce71def08dba91404476bea766b0d1b2af25ce36cff5f3f5bed132595f9a708d6bbd7f1d4a07c3ad69e531b405781fd1d4fda9475168198e
+  languageName: node
+  linkType: hard
+
 "@polkadot/api-base@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/api-base@npm:14.3.1"
@@ -3645,6 +3922,19 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/api-base@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/api-base@npm:15.9.1"
+  dependencies:
+    "@polkadot/rpc-core": "npm:15.9.1"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    rxjs: "npm:^7.8.1"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/2a8202399b7057b52e0c87ad2a08e51ef8c8d9e55195abb661e5cea849494c4ecaec96c174f1ef13f3f0e0f4529f397cf354bec302d6d238e77729f52b827e0e
+  languageName: node
+  linkType: hard
+
 "@polkadot/api-derive@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/api-derive@npm:14.3.1"
@@ -3681,6 +3971,24 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/api-derive@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/api-derive@npm:15.9.1"
+  dependencies:
+    "@polkadot/api": "npm:15.9.1"
+    "@polkadot/api-augment": "npm:15.9.1"
+    "@polkadot/api-base": "npm:15.9.1"
+    "@polkadot/rpc-core": "npm:15.9.1"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/util-crypto": "npm:^13.4.3"
+    rxjs: "npm:^7.8.1"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/3cdc57ea801d31a1a39a9f6c4b1dde46c2c75c049a531ba802966e9c53b34ec3c929dea562dcb56350d910081fc6d0f69eece981badebf12886824302a32f63f
+  languageName: node
+  linkType: hard
+
 "@polkadot/api@npm:14.3.1, @polkadot/api@npm:^14.3.1":
   version: 14.3.1
   resolution: "@polkadot/api@npm:14.3.1"
@@ -3731,6 +4039,31 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/api@npm:15.9.1, @polkadot/api@npm:^15.0.1":
+  version: 15.9.1
+  resolution: "@polkadot/api@npm:15.9.1"
+  dependencies:
+    "@polkadot/api-augment": "npm:15.9.1"
+    "@polkadot/api-base": "npm:15.9.1"
+    "@polkadot/api-derive": "npm:15.9.1"
+    "@polkadot/keyring": "npm:^13.4.3"
+    "@polkadot/rpc-augment": "npm:15.9.1"
+    "@polkadot/rpc-core": "npm:15.9.1"
+    "@polkadot/rpc-provider": "npm:15.9.1"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-augment": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/types-create": "npm:15.9.1"
+    "@polkadot/types-known": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/util-crypto": "npm:^13.4.3"
+    eventemitter3: "npm:^5.0.1"
+    rxjs: "npm:^7.8.1"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/505ab76b1db9855d78d054e42f36fa8c8dfaabafe27c7781b3efb066171f3757348a377e6f6b3c3c868f5b329eb2abd46838a977b89e447c84082ad6030c8b01
+  languageName: node
+  linkType: hard
+
 "@polkadot/extension-dapp@npm:^0.56.2":
   version: 0.56.2
   resolution: "@polkadot/extension-dapp@npm:0.56.2"
@@ -3763,6 +4096,22 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/extension-dapp@npm:^0.58.6":
+  version: 0.58.6
+  resolution: "@polkadot/extension-dapp@npm:0.58.6"
+  dependencies:
+    "@polkadot/extension-inject": "npm:0.58.6"
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/util-crypto": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  peerDependencies:
+    "@polkadot/api": "*"
+    "@polkadot/util": "*"
+    "@polkadot/util-crypto": "*"
+  checksum: 10c0/2accb7c2194752c114c623f0c55f4e17d59d13b154cb16f5353c7db644400a06702a4cb9d9ce43718012a7d0f631fabd8cdc566e72eb0db1a77c82d4aadcc645
+  languageName: node
+  linkType: hard
+
 "@polkadot/extension-inject@npm:0.56.2":
   version: 0.56.2
   resolution: "@polkadot/extension-inject@npm:0.56.2"
@@ -3799,6 +4148,24 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/extension-inject@npm:0.58.6":
+  version: 0.58.6
+  resolution: "@polkadot/extension-inject@npm:0.58.6"
+  dependencies:
+    "@polkadot/api": "npm:^15.8.1"
+    "@polkadot/rpc-provider": "npm:^15.8.1"
+    "@polkadot/types": "npm:^15.8.1"
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/util-crypto": "npm:^13.4.3"
+    "@polkadot/x-global": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  peerDependencies:
+    "@polkadot/api": "*"
+    "@polkadot/util": "*"
+  checksum: 10c0/5fac31ae7c42e9e6c31b56787df02feef31f14968a50dc3605e6ec55c6522f2295c366790178e73ede22e754c629ce670732fb89d16dc80204ce3909d23f2f65
+  languageName: node
+  linkType: hard
+
 "@polkadot/keyring@npm:^13.2.3, @polkadot/keyring@npm:^13.4.3":
   version: 13.4.3
   resolution: "@polkadot/keyring@npm:13.4.3"
@@ -3850,6 +4217,19 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/rpc-augment@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/rpc-augment@npm:15.9.1"
+  dependencies:
+    "@polkadot/rpc-core": "npm:15.9.1"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/8dd3e2f63dc44c22272681ec31c06adb6cc0712a04d43a385d3262f4652e4ec47e61cb315e53dad637087da877e01955c2a151c9f7c002931c7063d66c7305de
+  languageName: node
+  linkType: hard
+
 "@polkadot/rpc-core@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/rpc-core@npm:14.3.1"
@@ -3878,6 +4258,20 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/rpc-core@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/rpc-core@npm:15.9.1"
+  dependencies:
+    "@polkadot/rpc-augment": "npm:15.9.1"
+    "@polkadot/rpc-provider": "npm:15.9.1"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    rxjs: "npm:^7.8.1"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/96ed12e79429adb983fe57d658dd0188a3f7a705b99c50da8e9f06ecbafd8ffe6ab0ba399cf17f8ca62955b7efe9c162465395b56c89a436d4ffeafe2b443022
+  languageName: node
+  linkType: hard
+
 "@polkadot/rpc-provider@npm:14.3.1, @polkadot/rpc-provider@npm:^14.3.1":
   version: 14.3.1
   resolution: "@polkadot/rpc-provider@npm:14.3.1"
@@ -3926,6 +4320,30 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/rpc-provider@npm:15.9.1, @polkadot/rpc-provider@npm:^15.8.1":
+  version: 15.9.1
+  resolution: "@polkadot/rpc-provider@npm:15.9.1"
+  dependencies:
+    "@polkadot/keyring": "npm:^13.4.3"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-support": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/util-crypto": "npm:^13.4.3"
+    "@polkadot/x-fetch": "npm:^13.4.3"
+    "@polkadot/x-global": "npm:^13.4.3"
+    "@polkadot/x-ws": "npm:^13.4.3"
+    "@substrate/connect": "npm:0.8.11"
+    eventemitter3: "npm:^5.0.1"
+    mock-socket: "npm:^9.3.1"
+    nock: "npm:^13.5.5"
+    tslib: "npm:^2.8.1"
+  dependenciesMeta:
+    "@substrate/connect":
+      optional: true
+  checksum: 10c0/4d5406d7706e045ec5172635dfd0f17297b98e4aa9c7507341c070b9978cc39d13edf68dc2217e2251caed1937d4dc564b4592ef32bb412dd4ed7fb679b9e55f
+  languageName: node
+  linkType: hard
+
 "@polkadot/types-augment@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/types-augment@npm:14.3.1"
@@ -3950,6 +4368,18 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/types-augment@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/types-augment@npm:15.9.1"
+  dependencies:
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/604c1cfa468153d64fc7750dabec859e67d2736abc810134ef0306701e050c8575dfdbe35cb22f761da322400a9238a5510b570ec33eecc0870a3195956ab022
+  languageName: node
+  linkType: hard
+
 "@polkadot/types-codec@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/types-codec@npm:14.3.1"
@@ -3972,6 +4402,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/types-codec@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/types-codec@npm:15.9.1"
+  dependencies:
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/x-bigint": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/e170f277a17dfc1176467a3f163d33a5be0b96eebf66a6600086d7132190de6fd236f7c84dfa171d1df121439913f5f5b1a9eab6731fbce4578de2d54aec944f
+  languageName: node
+  linkType: hard
+
 "@polkadot/types-create@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/types-create@npm:14.3.1"
@@ -3994,6 +4435,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/types-create@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/types-create@npm:15.9.1"
+  dependencies:
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/47bc219f378756052af696f59790e1be137a1b571909e3e504fc8c4cfcd5a9902eecafa678023a0746a18aa74d84f76bd3437e4678dea6db6f3b2d41364038b5
+  languageName: node
+  linkType: hard
+
 "@polkadot/types-known@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/types-known@npm:14.3.1"
@@ -4022,6 +4474,20 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/types-known@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/types-known@npm:15.9.1"
+  dependencies:
+    "@polkadot/networks": "npm:^13.4.3"
+    "@polkadot/types": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/types-create": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/888c91e51a7deba90bbe5015eab64e3a5f213387e2221eb9e7a34913fcbf0404467c6fa2d0d4f67eb94717951c03f1f4b3db5ba20c30d17ebfbe5c7ec73b193d
+  languageName: node
+  linkType: hard
+
 "@polkadot/types-support@npm:14.3.1":
   version: 14.3.1
   resolution: "@polkadot/types-support@npm:14.3.1"
@@ -4042,6 +4508,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/types-support@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/types-support@npm:15.9.1"
+  dependencies:
+    "@polkadot/util": "npm:^13.4.3"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/88db0bfc7f01fabe76201fd523c4f7f7392b333d859ef8257a7824be45f1b03153f22b8d747529f0dc357addedf8fd854c96d7c2fa67cc6df71c6251f931e8b5
+  languageName: node
+  linkType: hard
+
 "@polkadot/types@npm:14.3.1, @polkadot/types@npm:^14.3.1":
   version: 14.3.1
   resolution: "@polkadot/types@npm:14.3.1"
@@ -4074,6 +4550,22 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@polkadot/types@npm:15.9.1":
+  version: 15.9.1
+  resolution: "@polkadot/types@npm:15.9.1"
+  dependencies:
+    "@polkadot/keyring": "npm:^13.4.3"
+    "@polkadot/types-augment": "npm:15.9.1"
+    "@polkadot/types-codec": "npm:15.9.1"
+    "@polkadot/types-create": "npm:15.9.1"
+    "@polkadot/util": "npm:^13.4.3"
+    "@polkadot/util-crypto": "npm:^13.4.3"
+    rxjs: "npm:^7.8.1"
+    tslib: "npm:^2.8.1"
+  checksum: 10c0/2e5a05f4112e551e73890fa7d0904f2e4848023c3b251c735fc190bf98740f92594946b5f06aa258a17bdbb520021ad7f869d2e129bc4a9b363aebb6bc21268d
+  languageName: node
+  linkType: hard
+
 "@polkadot/util-crypto@npm:13.4.3, @polkadot/util-crypto@npm:^13.2.3, @polkadot/util-crypto@npm:^13.4.3":
   version: 13.4.3
   resolution: "@polkadot/util-crypto@npm:13.4.3"
@@ -5324,6 +5816,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/cpu-features@npm:^0":
+  version: 0.0.3
+  resolution: "@types/cpu-features@npm:0.0.3"
+  checksum: 10c0/9427eecd1a08077d2383adc8c1c3813ad95f69d3361aa83fbe4be8bd14f8280cb4ec3963ef9b2a8e572bbb5e0d4a0f8d343428436c24e2e4741c9788306c17dd
+  languageName: node
+  linkType: hard
+
 "@types/dns-packet@npm:^5.6.5":
   version: 5.6.5
   resolution: "@types/dns-packet@npm:5.6.5"
@@ -5380,6 +5879,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/estree@npm:^1.0.6":
+  version: 1.0.7
+  resolution: "@types/estree@npm:1.0.7"
+  checksum: 10c0/be815254316882f7c40847336cd484c3bc1c3e34f710d197160d455dc9d6d050ffbf4c3bc76585dba86f737f020ab20bdb137ebe0e9116b0c86c7c0342221b8c
+  languageName: node
+  linkType: hard
+
 "@types/express-serve-static-core@npm:^5.0.0":
   version: 5.0.6
   resolution: "@types/express-serve-static-core@npm:5.0.6"
@@ -5462,7 +5968,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/json-schema@npm:*":
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15":
   version: 7.0.15
   resolution: "@types/json-schema@npm:7.0.15"
   checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
@@ -5486,6 +5992,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/k6@npm:^1.0.0":
+  version: 1.0.2
+  resolution: "@types/k6@npm:1.0.2"
+  checksum: 10c0/c4207863155f14a676e1b50b9708c4b46c69f60346a6bd9c2f49acbe5d7dad654b0c24407d136ebe153cb6fde80c4d05522c00077da75dcfd681a62a6f54dd3c
+  languageName: node
+  linkType: hard
+
 "@types/linkify-it@npm:^5":
   version: 5.0.0
   resolution: "@types/linkify-it@npm:5.0.0"
@@ -5519,6 +6032,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/mime-types@npm:^2.1.4":
+  version: 2.1.4
+  resolution: "@types/mime-types@npm:2.1.4"
+  checksum: 10c0/a10d57881d14a053556b3d09292de467968d965b0a06d06732c748da39b3aa569270b5b9f32529fd0e9ac1e5f3b91abb894f5b1996373254a65cb87903c86622
+  languageName: node
+  linkType: hard
+
 "@types/mime@npm:^1":
   version: 1.3.5
   resolution: "@types/mime@npm:1.3.5"
@@ -5576,6 +6096,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/node@npm:^22.10.1":
+  version: 22.13.14
+  resolution: "@types/node@npm:22.13.14"
+  dependencies:
+    undici-types: "npm:~6.20.0"
+  checksum: 10c0/fa2ab5b8277bfbcc86c42e46a3ea9871b0d559894cc9d955685d17178c9499f0b1bf03d1d1ea8d92ef2dda818988f4035acb8abf9dc15423a998fa56173ab804
+  languageName: node
+  linkType: hard
+
 "@types/papaparse@npm:^5.3.14":
   version: 5.3.15
   resolution: "@types/papaparse@npm:5.3.15"
@@ -5736,7 +6265,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/websocket@npm:^1":
+"@types/websocket@npm:^1, @types/websocket@npm:^1.0.10":
   version: 1.0.10
   resolution: "@types/websocket@npm:1.0.10"
   dependencies:
@@ -6187,6 +6716,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"acorn@npm:^8.14.0":
+  version: 8.14.1
+  resolution: "acorn@npm:8.14.1"
+  bin:
+    acorn: bin/acorn
+  checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123
+  languageName: node
+  linkType: hard
+
 "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
   version: 7.1.3
   resolution: "agent-base@npm:7.1.3"
@@ -6581,6 +7119,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"asynckit@npm:^0.4.0":
+  version: 0.4.0
+  resolution: "asynckit@npm:0.4.0"
+  checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
+  languageName: node
+  linkType: hard
+
 "auth@workspace:auth":
   version: 0.0.0-use.local
   resolution: "auth@workspace:auth"
@@ -6640,6 +7185,20 @@ __metadata:
   languageName: unknown
   linkType: soft
 
+"auto-files-gateway@workspace:submodules/files-gateway":
+  version: 0.0.0-use.local
+  resolution: "auto-files-gateway@workspace:submodules/files-gateway"
+  dependencies:
+    "@autonomys/rpc": "npm:^1.4.11"
+    "@types/k6": "npm:^1.0.0"
+    "@types/node": "npm:^22.10.2"
+    axios: "npm:^1.7.9"
+    bun: "npm:^1.1.39"
+    ts-node: "npm:^10.9.2"
+    winston: "npm:^3.17.0"
+  languageName: unknown
+  linkType: soft
+
 "available-typed-arrays@npm:^1.0.7":
   version: 1.0.7
   resolution: "available-typed-arrays@npm:1.0.7"
@@ -6674,6 +7233,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"axios@npm:^1.7.9":
+  version: 1.8.4
+  resolution: "axios@npm:1.8.4"
+  dependencies:
+    follow-redirects: "npm:^1.15.6"
+    form-data: "npm:^4.0.0"
+    proxy-from-env: "npm:^1.1.0"
+  checksum: 10c0/450993c2ba975ffccaf0d480b68839a3b2435a5469a71fa2fb0b8a55cdb2c2ae47e609360b9c1e2b2534b73dfd69e2733a1cf9f8215bee0bcd729b72f801b0ce
+  languageName: node
+  linkType: hard
+
 "axobject-query@npm:^4.1.0":
   version: 4.1.0
   resolution: "axobject-query@npm:4.1.0"
@@ -6816,10 +7386,12 @@ __metadata:
   resolution: "backend@workspace:backend"
   dependencies:
     "@auto-drive/models": "workspace:*"
+    "@auto-files/rpc-apis": "workspace:*"
     "@autonomys/asynchronous": "npm:^1.4.1"
     "@autonomys/auto-dag-data": "npm:^1.0.8"
     "@autonomys/auto-drive": "npm:^1.0.5"
     "@autonomys/file-caching": "npm:^1.4.3"
+    "@autonomys/rpc": "npm:^1.4.11"
     "@faker-js/faker": "npm:^9.2.0"
     "@keyvhq/sqlite": "npm:^2.1.6"
     "@polkadot/api": "npm:^15.8.1"
@@ -6966,6 +7538,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"better-sqlite3@npm:^8.1.0":
+  version: 8.7.0
+  resolution: "better-sqlite3@npm:8.7.0"
+  dependencies:
+    bindings: "npm:^1.5.0"
+    node-gyp: "npm:latest"
+    prebuild-install: "npm:^7.1.1"
+  checksum: 10c0/2583401b08531eee74c083c73f3a5902bc142b0e1c16de5b9caa92ee94f544e2cb512c214de2f762a6c83e593f26f70013214344a9ea66ace6d0619efbf04a1e
+  languageName: node
+  linkType: hard
+
 "binary-extensions@npm:^2.0.0":
   version: 2.3.0
   resolution: "binary-extensions@npm:2.3.0"
@@ -6973,6 +7556,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"bindings@npm:^1.5.0":
+  version: 1.5.0
+  resolution: "bindings@npm:1.5.0"
+  dependencies:
+    file-uri-to-path: "npm:1.0.0"
+  checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba
+  languageName: node
+  linkType: hard
+
 "bl@npm:^4.0.3, bl@npm:^4.1.0":
   version: 4.1.0
   resolution: "bl@npm:4.1.0"
@@ -7177,6 +7769,52 @@ __metadata:
   languageName: node
   linkType: hard
 
+"bun@npm:^1.1.39":
+  version: 1.2.8
+  resolution: "bun@npm:1.2.8"
+  dependencies:
+    "@oven/bun-darwin-aarch64": "npm:1.2.8"
+    "@oven/bun-darwin-x64": "npm:1.2.8"
+    "@oven/bun-darwin-x64-baseline": "npm:1.2.8"
+    "@oven/bun-linux-aarch64": "npm:1.2.8"
+    "@oven/bun-linux-aarch64-musl": "npm:1.2.8"
+    "@oven/bun-linux-x64": "npm:1.2.8"
+    "@oven/bun-linux-x64-baseline": "npm:1.2.8"
+    "@oven/bun-linux-x64-musl": "npm:1.2.8"
+    "@oven/bun-linux-x64-musl-baseline": "npm:1.2.8"
+    "@oven/bun-windows-x64": "npm:1.2.8"
+    "@oven/bun-windows-x64-baseline": "npm:1.2.8"
+  dependenciesMeta:
+    "@oven/bun-darwin-aarch64":
+      optional: true
+    "@oven/bun-darwin-x64":
+      optional: true
+    "@oven/bun-darwin-x64-baseline":
+      optional: true
+    "@oven/bun-linux-aarch64":
+      optional: true
+    "@oven/bun-linux-aarch64-musl":
+      optional: true
+    "@oven/bun-linux-x64":
+      optional: true
+    "@oven/bun-linux-x64-baseline":
+      optional: true
+    "@oven/bun-linux-x64-musl":
+      optional: true
+    "@oven/bun-linux-x64-musl-baseline":
+      optional: true
+    "@oven/bun-windows-x64":
+      optional: true
+    "@oven/bun-windows-x64-baseline":
+      optional: true
+  bin:
+    bun: bin/bun.exe
+    bunx: bin/bun.exe
+  checksum: 10c0/a0294fc4ecb659fc57bc0d966ed226abef0b6cf2b35ddcccbe30cb86b797af184be9db6b055e9df7a9f33dabff5df45c325fc77516d67050ecbc727a59e2ad46
+  conditions: (os=darwin | os=linux | os=win32) & (cpu=arm64 | cpu=x64 | cpu=aarch64)
+  languageName: node
+  linkType: hard
+
 "busboy@npm:1.6.0, busboy@npm:^1.0.0, busboy@npm:^1.6.0":
   version: 1.6.0
   resolution: "busboy@npm:1.6.0"
@@ -7232,7 +7870,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"cache-manager@npm:^6.4.0, cache-manager@npm:^6.4.1":
+"cache-manager@npm:^6.3.0, cache-manager@npm:^6.4.0, cache-manager@npm:^6.4.1":
   version: 6.4.1
   resolution: "cache-manager@npm:6.4.1"
   dependencies:
@@ -7241,6 +7879,18 @@ __metadata:
   languageName: node
   linkType: hard
 
+"cache-sqlite-lru-ttl@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "cache-sqlite-lru-ttl@npm:1.0.0"
+  dependencies:
+    better-sqlite3: "npm:^8.1.0"
+    cbor: "npm:^8.1.0"
+    debounce: "npm:^1.2.1"
+    zod: "npm:^3.20.6"
+  checksum: 10c0/a654bd1fb0740b4b5fb7509952133409a3685858f585e8c3759b10316bc6a69bda60d000546f0144bbba3e32c642a1ba8732a240435d770afd65bfff1a30f6cd
+  languageName: node
+  linkType: hard
+
 "call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2":
   version: 1.0.2
   resolution: "call-bind-apply-helpers@npm:1.0.2"
@@ -7356,6 +8006,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"cbor@npm:^8.1.0":
+  version: 8.1.0
+  resolution: "cbor@npm:8.1.0"
+  dependencies:
+    nofilter: "npm:^3.1.0"
+  checksum: 10c0/a836e2e7ea0efb1b9c4e5a4be906c57113d730cc42293a34072e0164ed110bb8ac035dc7dca2e3ebb641bd4b37e00fdbbf09c951aa864b3d4888a6ed8c6243f7
+  languageName: node
+  linkType: hard
+
 "chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1":
   version: 4.1.2
   resolution: "chalk@npm:4.1.2"
@@ -7663,6 +8322,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"combined-stream@npm:^1.0.8":
+  version: 1.0.8
+  resolution: "combined-stream@npm:1.0.8"
+  dependencies:
+    delayed-stream: "npm:~1.0.0"
+  checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
+  languageName: node
+  linkType: hard
+
 "commander@npm:^4.0.0":
   version: 4.1.1
   resolution: "commander@npm:4.1.1"
@@ -7829,7 +8497,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"cpu-features@npm:~0.0.10":
+"cpu-features@npm:^0.0.10, cpu-features@npm:~0.0.10":
   version: 0.0.10
   resolution: "cpu-features@npm:0.0.10"
   dependencies:
@@ -8086,7 +8754,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"debounce@npm:^1.2.0":
+"debounce@npm:^1.2.0, debounce@npm:^1.2.1":
   version: 1.2.1
   resolution: "debounce@npm:1.2.1"
   checksum: 10c0/6c9320aa0973fc42050814621a7a8a78146c1975799b5b3cc1becf1f77ba9a5aa583987884230da0842a03f385def452fad5d60db97c3d1c8b824e38a8edf500
@@ -8203,6 +8871,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"delayed-stream@npm:~1.0.0":
+  version: 1.0.0
+  resolution: "delayed-stream@npm:1.0.0"
+  checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
+  languageName: node
+  linkType: hard
+
 "depd@npm:2.0.0":
   version: 2.0.0
   resolution: "depd@npm:2.0.0"
@@ -8866,6 +9541,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"eslint-config-prettier@npm:^10.0.0":
+  version: 10.1.1
+  resolution: "eslint-config-prettier@npm:10.1.1"
+  peerDependencies:
+    eslint: ">=7.0.0"
+  bin:
+    eslint-config-prettier: bin/cli.js
+  checksum: 10c0/3dbfdf6495dd62e2e1644ea9e8e978100dabcd8740fd264df1222d130001a1e8de05d6ed6c67d3a60727386a07507f067d1ca79af6d546910414beab19e7966e
+  languageName: node
+  linkType: hard
+
 "eslint-config-prettier@npm:^9.1.0":
   version: 9.1.0
   resolution: "eslint-config-prettier@npm:9.1.0"
@@ -9075,6 +9761,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"eslint-scope@npm:^8.3.0":
+  version: 8.3.0
+  resolution: "eslint-scope@npm:8.3.0"
+  dependencies:
+    esrecurse: "npm:^4.3.0"
+    estraverse: "npm:^5.2.0"
+  checksum: 10c0/23bf54345573201fdf06d29efa345ab508b355492f6c6cc9e2b9f6d02b896f369b6dd5315205be94b8853809776c4d13353b85c6b531997b164ff6c3328ecf5b
+  languageName: node
+  linkType: hard
+
 "eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3":
   version: 3.4.3
   resolution: "eslint-visitor-keys@npm:3.4.3"
@@ -9137,6 +9833,56 @@ __metadata:
   languageName: node
   linkType: hard
 
+"eslint@npm:^9.0.0":
+  version: 9.23.0
+  resolution: "eslint@npm:9.23.0"
+  dependencies:
+    "@eslint-community/eslint-utils": "npm:^4.2.0"
+    "@eslint-community/regexpp": "npm:^4.12.1"
+    "@eslint/config-array": "npm:^0.19.2"
+    "@eslint/config-helpers": "npm:^0.2.0"
+    "@eslint/core": "npm:^0.12.0"
+    "@eslint/eslintrc": "npm:^3.3.1"
+    "@eslint/js": "npm:9.23.0"
+    "@eslint/plugin-kit": "npm:^0.2.7"
+    "@humanfs/node": "npm:^0.16.6"
+    "@humanwhocodes/module-importer": "npm:^1.0.1"
+    "@humanwhocodes/retry": "npm:^0.4.2"
+    "@types/estree": "npm:^1.0.6"
+    "@types/json-schema": "npm:^7.0.15"
+    ajv: "npm:^6.12.4"
+    chalk: "npm:^4.0.0"
+    cross-spawn: "npm:^7.0.6"
+    debug: "npm:^4.3.2"
+    escape-string-regexp: "npm:^4.0.0"
+    eslint-scope: "npm:^8.3.0"
+    eslint-visitor-keys: "npm:^4.2.0"
+    espree: "npm:^10.3.0"
+    esquery: "npm:^1.5.0"
+    esutils: "npm:^2.0.2"
+    fast-deep-equal: "npm:^3.1.3"
+    file-entry-cache: "npm:^8.0.0"
+    find-up: "npm:^5.0.0"
+    glob-parent: "npm:^6.0.2"
+    ignore: "npm:^5.2.0"
+    imurmurhash: "npm:^0.1.4"
+    is-glob: "npm:^4.0.0"
+    json-stable-stringify-without-jsonify: "npm:^1.0.1"
+    lodash.merge: "npm:^4.6.2"
+    minimatch: "npm:^3.1.2"
+    natural-compare: "npm:^1.4.0"
+    optionator: "npm:^0.9.3"
+  peerDependencies:
+    jiti: "*"
+  peerDependenciesMeta:
+    jiti:
+      optional: true
+  bin:
+    eslint: bin/eslint.js
+  checksum: 10c0/9616c308dfa8d09db8ae51019c87d5d05933742214531b077bd6ab618baab3bec7938256c14dcad4dc47f5ba93feb0bc5e089f68799f076374ddea21b6a9be45
+  languageName: node
+  linkType: hard
+
 "esniff@npm:^2.0.1":
   version: 2.0.1
   resolution: "esniff@npm:2.0.1"
@@ -9149,6 +9895,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"espree@npm:^10.0.1, espree@npm:^10.3.0":
+  version: 10.3.0
+  resolution: "espree@npm:10.3.0"
+  dependencies:
+    acorn: "npm:^8.14.0"
+    acorn-jsx: "npm:^5.3.2"
+    eslint-visitor-keys: "npm:^4.2.0"
+  checksum: 10c0/272beeaca70d0a1a047d61baff64db04664a33d7cfb5d144f84bc8a5c6194c6c8ebe9cc594093ca53add88baa23e59b01e69e8a0160ab32eac570482e165c462
+  languageName: node
+  linkType: hard
+
 "espree@npm:^9.0.0, espree@npm:^9.6.0, espree@npm:^9.6.1":
   version: 9.6.1
   resolution: "espree@npm:9.6.1"
@@ -9170,7 +9927,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"esquery@npm:^1.4.2":
+"esquery@npm:^1.4.2, esquery@npm:^1.5.0":
   version: 1.6.0
   resolution: "esquery@npm:1.6.0"
   dependencies:
@@ -9305,7 +10062,16 @@ __metadata:
   languageName: node
   linkType: hard
 
-"express@npm:^4.19.2, express@npm:^4.21.2":
+"express-async-errors@npm:^3.1.1":
+  version: 3.1.1
+  resolution: "express-async-errors@npm:3.1.1"
+  peerDependencies:
+    express: ^4.16.2
+  checksum: 10c0/56c4e90c44e98c7edc5bd38e18dd23b0d9a7139cb94ff3e25943ba257415b433e0e52ea8f9bc1fb5b70a5e6c5246eaace4fb69ab171edfb8896580928bb97ec6
+  languageName: node
+  linkType: hard
+
+"express@npm:^4.19.2, express@npm:^4.21.1, express@npm:^4.21.2":
   version: 4.21.2
   resolution: "express@npm:4.21.2"
   dependencies:
@@ -9553,6 +10319,54 @@ __metadata:
   languageName: node
   linkType: hard
 
+"file-entry-cache@npm:^8.0.0":
+  version: 8.0.0
+  resolution: "file-entry-cache@npm:8.0.0"
+  dependencies:
+    flat-cache: "npm:^4.0.0"
+  checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
+  languageName: node
+  linkType: hard
+
+"file-retriever@workspace:submodules/files-gateway/services/file-retriever":
+  version: 0.0.0-use.local
+  resolution: "file-retriever@workspace:submodules/files-gateway/services/file-retriever"
+  dependencies:
+    "@autonomys/auto-dag-data": "npm:^1.0.12"
+    "@autonomys/auto-utils": "npm:^1.0.12"
+    "@autonomys/file-caching": "npm:^1.4.3"
+    "@ipld/dag-pb": "npm:^4.1.3"
+    "@keyvhq/core": "npm:^2.1.1"
+    "@keyvhq/sqlite": "npm:^2.1.6"
+    "@polkadot/api": "npm:^15.0.1"
+    "@polkadot/util": "npm:^13.2.3"
+    "@types/cors": "npm:^2.8.17"
+    "@types/cpu-features": "npm:^0"
+    "@types/express": "npm:^5.0.0"
+    "@types/mime-types": "npm:^2.1.4"
+    "@types/node": "npm:^22.10.1"
+    cache-manager: "npm:^6.3.0"
+    cache-sqlite-lru-ttl: "npm:^1.0.0"
+    cors: "npm:^2.8.5"
+    cpu-features: "npm:^0.0.10"
+    dotenv: "npm:^16.4.7"
+    express: "npm:^4.21.1"
+    express-async-errors: "npm:^3.1.1"
+    keyv: "npm:^5.2.1"
+    lru-cache: "npm:^11.0.2"
+    mime-types: "npm:^2.1.35"
+    p-limit: "npm:^6.2.0"
+    typescript: "npm:^5.7.2"
+  languageName: unknown
+  linkType: soft
+
+"file-uri-to-path@npm:1.0.0":
+  version: 1.0.0
+  resolution: "file-uri-to-path@npm:1.0.0"
+  checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519
+  languageName: node
+  linkType: hard
+
 "filelist@npm:^1.0.4":
   version: 1.0.4
   resolution: "filelist@npm:1.0.4"
@@ -9627,6 +10441,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"flat-cache@npm:^4.0.0":
+  version: 4.0.1
+  resolution: "flat-cache@npm:4.0.1"
+  dependencies:
+    flatted: "npm:^3.2.9"
+    keyv: "npm:^4.5.4"
+  checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc
+  languageName: node
+  linkType: hard
+
 "flatted@npm:^3.2.9":
   version: 3.3.3
   resolution: "flatted@npm:3.3.3"
@@ -9653,6 +10477,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"follow-redirects@npm:^1.15.6":
+  version: 1.15.9
+  resolution: "follow-redirects@npm:1.15.9"
+  peerDependenciesMeta:
+    debug:
+      optional: true
+  checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f
+  languageName: node
+  linkType: hard
+
 "for-each@npm:^0.3.3":
   version: 0.3.5
   resolution: "for-each@npm:0.3.5"
@@ -9672,6 +10506,18 @@ __metadata:
   languageName: node
   linkType: hard
 
+"form-data@npm:^4.0.0":
+  version: 4.0.2
+  resolution: "form-data@npm:4.0.2"
+  dependencies:
+    asynckit: "npm:^0.4.0"
+    combined-stream: "npm:^1.0.8"
+    es-set-tostringtag: "npm:^2.1.0"
+    mime-types: "npm:^2.1.12"
+  checksum: 10c0/e534b0cf025c831a0929bf4b9bbe1a9a6b03e273a8161f9947286b9b13bf8fb279c6944aae0070c4c311100c6d6dbb815cd955dc217728caf73fad8dc5b8ee9c
+  languageName: node
+  linkType: hard
+
 "formdata-polyfill@npm:^4.0.10":
   version: 4.0.10
   resolution: "formdata-polyfill@npm:4.0.10"
@@ -10049,6 +10895,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"globals@npm:^14.0.0":
+  version: 14.0.0
+  resolution: "globals@npm:14.0.0"
+  checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d
+  languageName: node
+  linkType: hard
+
 "globalthis@npm:^1.0.4":
   version: 1.0.4
   resolution: "globalthis@npm:1.0.4"
@@ -11706,7 +12559,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"json-buffer@npm:3.0.1":
+"json-buffer@npm:3.0.1, json-buffer@npm:~3.0.1":
   version: 3.0.1
   resolution: "json-buffer@npm:3.0.1"
   checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
@@ -11848,7 +12701,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"keyv@npm:^4.5.3":
+"keyv@npm:^4.5.3, keyv@npm:^4.5.4":
   version: 4.5.4
   resolution: "keyv@npm:4.5.4"
   dependencies:
@@ -11857,21 +12710,21 @@ __metadata:
   languageName: node
   linkType: hard
 
-"keyv@npm:^5.3.1":
-  version: 5.3.1
-  resolution: "keyv@npm:5.3.1"
+"keyv@npm:^5.2.1, keyv@npm:^5.3.2":
+  version: 5.3.2
+  resolution: "keyv@npm:5.3.2"
   dependencies:
     "@keyv/serialize": "npm:^1.0.3"
-  checksum: 10c0/d5ffe3d2d547a50a5e1189d5acbc0480821c22c025082851a8eeb26667d789f3f7b7ee7beb933660d98c239f7e7c403c652a511693670a78a73f06cd411e04fa
+  checksum: 10c0/293ebd052e7889685b8b770b7b4c9047aaafd821f5446b5b5ffa1cc6e9b830ee752f7b2d108bd96e1277c644c89f02a39e09c45159a6cb87663e183c4405989a
   languageName: node
   linkType: hard
 
-"keyv@npm:^5.3.2":
-  version: 5.3.2
-  resolution: "keyv@npm:5.3.2"
+"keyv@npm:^5.3.1":
+  version: 5.3.1
+  resolution: "keyv@npm:5.3.1"
   dependencies:
     "@keyv/serialize": "npm:^1.0.3"
-  checksum: 10c0/293ebd052e7889685b8b770b7b4c9047aaafd821f5446b5b5ffa1cc6e9b830ee752f7b2d108bd96e1277c644c89f02a39e09c45159a6cb87663e183c4405989a
+  checksum: 10c0/d5ffe3d2d547a50a5e1189d5acbc0480821c22c025082851a8eeb26667d789f3f7b7ee7beb933660d98c239f7e7c403c652a511693670a78a73f06cd411e04fa
   languageName: node
   linkType: hard
 
@@ -12436,7 +13289,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"mime-types@npm:^2.1.35, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
+"mime-types@npm:^2.1.12, mime-types@npm:^2.1.35, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
   version: 2.1.35
   resolution: "mime-types@npm:2.1.35"
   dependencies:
@@ -13008,6 +13861,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"nofilter@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "nofilter@npm:3.1.0"
+  checksum: 10c0/92459f3864a067b347032263f0b536223cbfc98153913b5dce350cb39c8470bc1813366e41993f22c33cc6400c0f392aa324a4b51e24c22040635c1cdb046499
+  languageName: node
+  linkType: hard
+
 "nopt@npm:^8.0.0":
   version: 8.1.0
   resolution: "nopt@npm:8.1.0"
@@ -13093,6 +13953,46 @@ __metadata:
   languageName: node
   linkType: hard
 
+"object-mapping-indexer@workspace:submodules/files-gateway/services/object-mapping-indexer":
+  version: 0.0.0-use.local
+  resolution: "object-mapping-indexer@workspace:submodules/files-gateway/services/object-mapping-indexer"
+  dependencies:
+    "@auto-files/models": "workspace:*"
+    "@auto-files/rpc-apis": "workspace:*"
+    "@autonomys/auto-dag-data": "npm:^1.0.5"
+    "@autonomys/rpc": "npm:^1.4.11"
+    "@peculiar/webcrypto": "npm:^1.5.0"
+    "@types/cors": "npm:^2.8.17"
+    "@types/express": "npm:^5.0.0"
+    "@types/node": "npm:^22.10.2"
+    "@types/pg": "npm:^8.11.10"
+    "@types/pg-format": "npm:^1"
+    "@types/websocket": "npm:^1.0.10"
+    "@typescript-eslint/eslint-plugin": "npm:^8.13.0"
+    "@typescript-eslint/parser": "npm:^8.13.0"
+    blockstore-core: "npm:^5.0.2"
+    cors: "npm:^2.8.5"
+    db-migrate: "npm:^0.11.14"
+    db-migrate-pg: "npm:^1.5.2"
+    dotenv: "npm:^16.4.5"
+    eslint: "npm:^9.0.0"
+    eslint-config-prettier: "npm:^10.0.0"
+    eslint-plugin-eslint-plugin: "npm:^6.3.1"
+    eslint-plugin-prettier: "npm:^5.2.1"
+    express: "npm:^4.21.1"
+    express-async-errors: "npm:^3.1.1"
+    pg: "npm:^8.13.1"
+    pg-format: "npm:^1.0.4"
+    prettier: "npm:^3.3.3"
+    ts-node: "npm:^10.9.2"
+    typescript: "npm:^5.6.3"
+    uuid: "npm:^11.0.3"
+    websocket: "npm:^1.0.35"
+    winston: "npm:^3.17.0"
+    zod: "npm:^3.23.8"
+  languageName: unknown
+  linkType: soft
+
 "object.assign@npm:^4.1.4, object.assign@npm:^4.1.7":
   version: 4.1.7
   resolution: "object.assign@npm:4.1.7"
@@ -13622,6 +14522,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"pg-pool@npm:^3.8.0":
+  version: 3.8.0
+  resolution: "pg-pool@npm:3.8.0"
+  peerDependencies:
+    pg: ">=8.0"
+  checksum: 10c0/c05287b0caafeab43807e6ad22d153c09c473dbeb5b2cea13b83102376e9a56f46b91fa9adf9d53885ce198280c6a95555390987c42b3858d1936d3e0cdc83aa
+  languageName: node
+  linkType: hard
+
 "pg-protocol@npm:*, pg-protocol@npm:^1.7.1":
   version: 1.7.1
   resolution: "pg-protocol@npm:1.7.1"
@@ -13629,6 +14538,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"pg-protocol@npm:^1.8.0":
+  version: 1.8.0
+  resolution: "pg-protocol@npm:1.8.0"
+  checksum: 10c0/2be784955599d84b564795952cee52cc2b8eab0be43f74fc1061506353801e282c1d52c9e0691a9b72092c1f3fde370e9b181e80fef6bb82a9b8d1618bfa91e6
+  languageName: node
+  linkType: hard
+
 "pg-types@npm:^2.1.0":
   version: 2.2.0
   resolution: "pg-types@npm:2.2.0"
@@ -13679,6 +14595,28 @@ __metadata:
   languageName: node
   linkType: hard
 
+"pg@npm:^8.13.1":
+  version: 8.14.1
+  resolution: "pg@npm:8.14.1"
+  dependencies:
+    pg-cloudflare: "npm:^1.1.1"
+    pg-connection-string: "npm:^2.7.0"
+    pg-pool: "npm:^3.8.0"
+    pg-protocol: "npm:^1.8.0"
+    pg-types: "npm:^2.1.0"
+    pgpass: "npm:1.x"
+  peerDependencies:
+    pg-native: ">=3.0.1"
+  dependenciesMeta:
+    pg-cloudflare:
+      optional: true
+  peerDependenciesMeta:
+    pg-native:
+      optional: true
+  checksum: 10c0/221741cfcea4ab32c8b57bd60703bc36cfb5622dcac56c19e45f504ef8669f2f2e0429af8850f58079cfc89055da35b5a5e12de19e0505e3f61a4b4349388dcb
+  languageName: node
+  linkType: hard
+
 "pgpass@npm:1.x":
   version: 1.0.5
   resolution: "pgpass@npm:1.0.5"
@@ -14258,6 +15196,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"proxy-from-env@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "proxy-from-env@npm:1.1.0"
+  checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b
+  languageName: node
+  linkType: hard
+
 "pstree.remy@npm:^1.1.8":
   version: 1.1.8
   resolution: "pstree.remy@npm:1.1.8"
@@ -16533,7 +17478,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typescript@npm:^5.8.2":
+"typescript@npm:^5.7.2, typescript@npm:^5.8.2":
   version: 5.8.2
   resolution: "typescript@npm:5.8.2"
   bin:
@@ -16553,7 +17498,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typescript@patch:typescript@npm%3A^5.8.2#optional!builtin<compat/typescript>":
+"typescript@patch:typescript@npm%3A^5.7.2#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.8.2#optional!builtin<compat/typescript>":
   version: 5.8.2
   resolution: "typescript@patch:typescript@npm%3A5.8.2#optional!builtin<compat/typescript>::version=5.8.2&hash=b45daf"
   bin:
@@ -16892,7 +17837,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"uuid@npm:^11.0.5":
+"uuid@npm:^11.0.3, uuid@npm:^11.0.5":
   version: 11.1.0
   resolution: "uuid@npm:11.1.0"
   bin:
@@ -17446,7 +18391,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"zod@npm:^3.23.8, zod@npm:^3.24.2":
+"zod@npm:^3.20.6, zod@npm:^3.23.8, zod@npm:^3.24.2":
   version: 3.24.2
   resolution: "zod@npm:3.24.2"
   checksum: 10c0/c638c7220150847f13ad90635b3e7d0321b36cce36f3fc6050ed960689594c949c326dfe2c6fa87c14b126ee5d370ccdebd6efb304f41ef5557a4aaca2824565


Reviews:
user: login: clostao
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T06:51:12Z
user: login: marc-aurele-besner
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T10:42:41Z
user: login: iamnamananand996
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T11:35:04Z
user: login: clostao
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T16:45:11Z
user: login: marc-aurele-besner
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T17:03:18Z
user: login: iamnamananand996
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T17:20:13Z
user: login: marc-aurele-besner
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T02:50:46Z
user: login: iamnamananand996
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T04:40:35Z

Review comments:
diff_hunk: @@ -0,0 +1,4 @@
+[submodule "submodules/files-gateway"]
+	path = submodules/files-gateway
+	url = https://github.com/autonomys/auto-files-gateway.git
+	branch = fix-rpc-listen
path: .gitmodules
user: login: clostao
body: To-be-Updated
created_at: 2025-04-01T06:51:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,4 @@
+[submodule "submodules/files-gateway"]
+	path = submodules/files-gateway
+	url = https://github.com/autonomys/auto-files-gateway.git
+	branch = fix-rpc-listen
path: .gitmodules
user: login: clostao
body: This is solved rn
created_at: 2025-04-01T16:45:11Z
author_association: CONTRIBUTOR

PR comments:
user: login: netlify[bot]
created_at: 2025-04-01T06:02:58Z
body: ### <span aria-hidden="true">✅</span> Deploy Preview for *auto-drive-demo* ready!


|  Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 174878f83dda6767ab75c018320afcc87493b60d |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/sites/auto-drive-demo/deploys/67ec8ac5910d0200085ded17 |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-276--auto-drive-demo.netlify.app](https://deploy-preview-276--auto-drive-demo.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTI3Ni0tYXV0by1kcml2ZS1kZW1vLm5ldGxpZnkuYXBwIn0.KHEHxp-XONvG_C2dOVzHIMoiJSH1Z6p28zCAJ9pIBis)<br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [auto-drive-demo Preview](https://deploy-preview-276--auto-drive-demo.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify site configuration](https://app.netlify.com/sites/auto-drive-demo/configuration/notifications#deploy-webhooks)._
author_association: NONE
user: login: socket-security[bot]
created_at: 2025-04-02T00:57:10Z
body: Report too large to display inline

[**View full report↗︎**](https://socket.dev/dashboard/org/autonomys/diff/4c3d9566-dc9f-4ec3-9e26-65f3dd6799b4/0c5daa04-092d-469d-a2e9-1cb2685f59b0)

<!-- overview-comment -->
author_association: NONE