@nestm/storage 0.1.0-alpha.7 → 0.1.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +217 -18
  3. package/SECURITY.md +34 -5
  4. package/dist/ai-sdk/ai-sdk-workspace-tools.d.ts +14 -3
  5. package/dist/ai-sdk/ai-sdk-workspace-tools.d.ts.map +1 -1
  6. package/dist/ai-sdk/ai-sdk-workspace-tools.js +54 -23
  7. package/dist/ai-sdk/ai-sdk-workspace-tools.js.map +1 -1
  8. package/dist/ai-sdk/index.d.ts +1 -1
  9. package/dist/ai-sdk/index.d.ts.map +1 -1
  10. package/dist/ai-sdk/index.js.map +1 -1
  11. package/dist/files-sdk/files-sdk.driver.d.ts +54 -10
  12. package/dist/files-sdk/files-sdk.driver.d.ts.map +1 -1
  13. package/dist/files-sdk/files-sdk.driver.js +784 -63
  14. package/dist/files-sdk/files-sdk.driver.js.map +1 -1
  15. package/dist/files-sdk/fs/index.d.ts +4 -4
  16. package/dist/files-sdk/fs/index.d.ts.map +1 -1
  17. package/dist/files-sdk/fs/index.js +242 -9
  18. package/dist/files-sdk/fs/index.js.map +1 -1
  19. package/dist/files-sdk/index.d.ts +1 -1
  20. package/dist/files-sdk/index.d.ts.map +1 -1
  21. package/dist/files-sdk/index.js.map +1 -1
  22. package/dist/files-sdk/provider/index.d.ts +9 -5
  23. package/dist/files-sdk/provider/index.d.ts.map +1 -1
  24. package/dist/files-sdk/provider/index.js +53 -15
  25. package/dist/files-sdk/provider/index.js.map +1 -1
  26. package/dist/files-sdk/s3/construction-metadata.d.ts +7 -0
  27. package/dist/files-sdk/s3/construction-metadata.d.ts.map +1 -0
  28. package/dist/files-sdk/s3/construction-metadata.js +13 -0
  29. package/dist/files-sdk/s3/construction-metadata.js.map +1 -0
  30. package/dist/files-sdk/s3/index.d.ts +39 -19
  31. package/dist/files-sdk/s3/index.d.ts.map +1 -1
  32. package/dist/files-sdk/s3/index.js +936 -113
  33. package/dist/files-sdk/s3/index.js.map +1 -1
  34. package/dist/gateway/storage-gateway.controller.d.ts.map +1 -1
  35. package/dist/gateway/storage-gateway.controller.js +25 -5
  36. package/dist/gateway/storage-gateway.controller.js.map +1 -1
  37. package/dist/storage-etag.d.ts +13 -0
  38. package/dist/storage-etag.d.ts.map +1 -0
  39. package/dist/storage-etag.js +31 -0
  40. package/dist/storage-etag.js.map +1 -0
  41. package/dist/storage.client.d.ts +3 -1
  42. package/dist/storage.client.d.ts.map +1 -1
  43. package/dist/storage.client.js +87 -22
  44. package/dist/storage.client.js.map +1 -1
  45. package/dist/storage.driver.d.ts +21 -1
  46. package/dist/storage.driver.d.ts.map +1 -1
  47. package/dist/storage.driver.js.map +1 -1
  48. package/dist/storage.types.d.ts +90 -19
  49. package/dist/storage.types.d.ts.map +1 -1
  50. package/dist/storage.types.js.map +1 -1
  51. package/dist/testing/index.d.ts +1 -0
  52. package/dist/testing/index.d.ts.map +1 -1
  53. package/dist/testing/index.js +1 -0
  54. package/dist/testing/index.js.map +1 -1
  55. package/dist/testing/provider-conformance.d.ts +65 -0
  56. package/dist/testing/provider-conformance.d.ts.map +1 -0
  57. package/dist/testing/provider-conformance.js +853 -0
  58. package/dist/testing/provider-conformance.js.map +1 -0
  59. package/dist/workspace/index.d.ts +1 -0
  60. package/dist/workspace/index.d.ts.map +1 -1
  61. package/dist/workspace/index.js +1 -0
  62. package/dist/workspace/index.js.map +1 -1
  63. package/dist/workspace/storage-workspace.cursor.d.ts +68 -3
  64. package/dist/workspace/storage-workspace.cursor.d.ts.map +1 -1
  65. package/dist/workspace/storage-workspace.cursor.js +402 -39
  66. package/dist/workspace/storage-workspace.cursor.js.map +1 -1
  67. package/dist/workspace/storage-workspace.d.ts.map +1 -1
  68. package/dist/workspace/storage-workspace.js +54 -46
  69. package/dist/workspace/storage-workspace.js.map +1 -1
  70. package/dist/workspace/storage-workspace.types.d.ts +10 -2
  71. package/dist/workspace/storage-workspace.types.d.ts.map +1 -1
  72. package/dist/workspace/storage-workspace.types.js +1 -0
  73. package/dist/workspace/storage-workspace.types.js.map +1 -1
  74. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"storage-workspace.types.d.ts","sourceRoot":"","sources":["../../src/workspace/storage-workspace.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-workspace.types.d.ts","sourceRoot":"","sources":["../../src/workspace/storage-workspace.types.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export const STORAGE_WORKSPACE_PERMISSIONS = [
10
10
  ];
11
11
  export const DEFAULT_STORAGE_WORKSPACE_LIMITS = Object.freeze({
12
12
  cursorTtlMs: 5 * 60 * 1000,
13
+ maxCursorBytes: 4_096,
13
14
  maxPageSize: 100,
14
15
  maxPathBytes: 1024,
15
16
  maxReadBytes: 1024 * 1024,
@@ -1 +1 @@
1
- {"version":3,"file":"storage-workspace.types.js","sourceRoot":"","sources":["../../src/workspace/storage-workspace.types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;CACA,CAAC;AAsBX,MAAM,CAAC,MAAM,gCAAgC,GAC3C,MAAM,CAAC,MAAM,CAAC;IACZ,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI,GAAG,IAAI;IACzB,gBAAgB,EAAE,GAAG;IACrB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI,GAAG,IAAI;CAC3B,CAAC,CAAC","sourcesContent":["import type { StorageBody, StorageOperationOptions } from '../storage.types.js';\n\nexport const STORAGE_WORKSPACE_PERMISSIONS = [\n 'list',\n 'read',\n 'search',\n 'create',\n 'replace',\n 'copy',\n 'move',\n 'delete',\n] as const;\n\nexport type StorageWorkspacePermission =\n (typeof STORAGE_WORKSPACE_PERMISSIONS)[number];\n\nexport interface StorageWorkspaceLimits {\n /** Maximum UTF-8 byte length of a workspace-relative path. */\n maxPathBytes: number;\n /** Maximum bytes returned by a buffered text read. */\n maxReadBytes: number;\n /** Maximum bytes accepted by one write. */\n maxWriteBytes: number;\n /** Maximum entries returned by one list page. */\n maxPageSize: number;\n /** Maximum entries returned by one search page. */\n maxSearchResults: number;\n /** Maximum objects inspected by one search query across all pages. */\n maxSearchScan: number;\n /** Lifetime of an opaque in-memory continuation cursor. */\n cursorTtlMs: number;\n}\n\nexport const DEFAULT_STORAGE_WORKSPACE_LIMITS: Readonly<StorageWorkspaceLimits> =\n Object.freeze({\n cursorTtlMs: 5 * 60 * 1000,\n maxPageSize: 100,\n maxPathBytes: 1024,\n maxReadBytes: 1024 * 1024,\n maxSearchResults: 100,\n maxSearchScan: 1000,\n maxWriteBytes: 1024 * 1024,\n });\n\nexport interface StorageWorkspaceFile {\n kind: 'file';\n path: string;\n name: string;\n size: number;\n contentType: string;\n etag?: string;\n lastModified?: Date;\n}\n\nexport interface StorageWorkspaceDirectory {\n kind: 'directory';\n path: string;\n name: string;\n}\n\nexport type StorageWorkspaceEntry =\n StorageWorkspaceFile | StorageWorkspaceDirectory;\n\nexport interface StorageWorkspaceTextFile extends StorageWorkspaceFile {\n text: string;\n}\n\nexport interface StorageWorkspacePage {\n entries: StorageWorkspaceEntry[];\n cursor?: string;\n}\n\nexport interface StorageWorkspaceMountOptions {\n permissions?: Iterable<StorageWorkspacePermission>;\n limits?: Partial<StorageWorkspaceLimits>;\n}\n\nexport interface MountStorageWorkspaceOptions extends StorageWorkspaceMountOptions {\n /** Trusted backend namespace. It is never exposed through the workspace. */\n prefix: string;\n}\n\nexport interface StorageWorkspaceReadOptions extends StorageOperationOptions {\n maxBytes?: number;\n}\n\nexport interface StorageWorkspaceListOptions extends StorageOperationOptions {\n directory?: string | undefined;\n recursive?: boolean | undefined;\n limit?: number | undefined;\n cursor?: string | undefined;\n}\n\nexport type StorageWorkspaceSearchMatch = 'glob' | 'substring' | 'exact';\n\nexport interface StorageWorkspaceSearchOptions extends StorageOperationOptions {\n directory?: string | undefined;\n match?: StorageWorkspaceSearchMatch | undefined;\n caseInsensitive?: boolean | undefined;\n limit?: number | undefined;\n cursor?: string | undefined;\n}\n\ninterface StorageWorkspaceWriteCommon extends StorageOperationOptions {\n contentType?: string;\n metadata?: Record<string, string>;\n}\n\nexport type StorageWorkspaceWriteOptions = StorageWorkspaceWriteCommon &\n (\n | { mode: 'create' }\n | {\n mode: 'replace';\n etag: string;\n }\n );\n\nexport interface StorageWorkspaceMutationOptions extends StorageOperationOptions {\n etag: string;\n}\n\nexport type StorageWorkspaceBody = Extract<StorageBody, string | Uint8Array>;\n\nexport interface StorageWorkspace {\n readonly permissions: ReadonlySet<StorageWorkspacePermission>;\n readonly limits: Readonly<StorageWorkspaceLimits>;\n allows(permission: StorageWorkspacePermission): boolean;\n stat(\n path: string,\n options?: StorageOperationOptions,\n ): Promise<StorageWorkspaceFile>;\n readText(\n path: string,\n options?: StorageWorkspaceReadOptions,\n ): Promise<StorageWorkspaceTextFile>;\n list(options?: StorageWorkspaceListOptions): Promise<StorageWorkspacePage>;\n search(\n query: string,\n options?: StorageWorkspaceSearchOptions,\n ): Promise<StorageWorkspacePage>;\n writeFile(\n path: string,\n body: StorageWorkspaceBody,\n options: StorageWorkspaceWriteOptions,\n ): Promise<StorageWorkspaceFile>;\n copyFile(\n source: string,\n destination: string,\n options?: StorageOperationOptions,\n ): Promise<StorageWorkspaceFile>;\n moveFile(\n source: string,\n destination: string,\n options: StorageWorkspaceMutationOptions,\n ): Promise<StorageWorkspaceFile>;\n deleteFile(\n path: string,\n options: StorageWorkspaceMutationOptions,\n ): Promise<void>;\n mount(\n directory: string,\n options?: StorageWorkspaceMountOptions,\n ): StorageWorkspace;\n}\n"]}
1
+ {"version":3,"file":"storage-workspace.types.js","sourceRoot":"","sources":["../../src/workspace/storage-workspace.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;CACA,CAAC;AA2BX,MAAM,CAAC,MAAM,gCAAgC,GAC3C,MAAM,CAAC,MAAM,CAAC;IACZ,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,cAAc,EAAE,KAAK;IACrB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI,GAAG,IAAI;IACzB,gBAAgB,EAAE,GAAG;IACrB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI,GAAG,IAAI;CAC3B,CAAC,CAAC","sourcesContent":["import type { StorageBody, StorageOperationOptions } from '../storage.types.js';\n\nimport type { StorageWorkspaceCursorConfiguration } from './storage-workspace.cursor.js';\n\nexport const STORAGE_WORKSPACE_PERMISSIONS = [\n 'list',\n 'read',\n 'search',\n 'create',\n 'replace',\n 'copy',\n 'move',\n 'delete',\n] as const;\n\nexport type StorageWorkspacePermission =\n (typeof STORAGE_WORKSPACE_PERMISSIONS)[number];\n\nexport interface StorageWorkspaceLimits {\n /** Maximum UTF-8 byte length of an opaque continuation cursor. */\n maxCursorBytes: number;\n /** Maximum UTF-8 byte length of a workspace-relative path. */\n maxPathBytes: number;\n /** Maximum bytes returned by a buffered text read. */\n maxReadBytes: number;\n /** Maximum bytes accepted by one write. */\n maxWriteBytes: number;\n /** Maximum entries returned by one list page. */\n maxPageSize: number;\n /** Maximum entries returned by one search page. */\n maxSearchResults: number;\n /** Maximum objects inspected by one search query across all pages. */\n maxSearchScan: number;\n /**\n * Authorization ceiling for an opaque continuation cursor. It does not\n * extend the lifetime or availability of an embedded provider cursor.\n */\n cursorTtlMs: number;\n}\n\nexport const DEFAULT_STORAGE_WORKSPACE_LIMITS: Readonly<StorageWorkspaceLimits> =\n Object.freeze({\n cursorTtlMs: 5 * 60 * 1000,\n maxCursorBytes: 4_096,\n maxPageSize: 100,\n maxPathBytes: 1024,\n maxReadBytes: 1024 * 1024,\n maxSearchResults: 100,\n maxSearchScan: 1000,\n maxWriteBytes: 1024 * 1024,\n });\n\nexport interface StorageWorkspaceFile {\n kind: 'file';\n path: string;\n name: string;\n size: number;\n contentType: string;\n etag?: string;\n lastModified?: Date;\n}\n\nexport interface StorageWorkspaceDirectory {\n kind: 'directory';\n path: string;\n name: string;\n}\n\nexport type StorageWorkspaceEntry =\n StorageWorkspaceFile | StorageWorkspaceDirectory;\n\nexport interface StorageWorkspaceTextFile extends StorageWorkspaceFile {\n text: string;\n}\n\nexport interface StorageWorkspacePage {\n entries: StorageWorkspaceEntry[];\n cursor?: string;\n}\n\nexport interface StorageWorkspaceMountOptions {\n permissions?: Iterable<StorageWorkspacePermission>;\n limits?: Partial<StorageWorkspaceLimits>;\n}\n\nexport interface MountStorageWorkspaceOptions extends StorageWorkspaceMountOptions {\n /** Trusted backend namespace. It is never exposed through the workspace. */\n prefix: string;\n /** Stable server-owned cursor configuration shared across serving replicas. */\n cursor?: StorageWorkspaceCursorConfiguration;\n}\n\nexport interface StorageWorkspaceReadOptions extends StorageOperationOptions {\n maxBytes?: number;\n}\n\nexport interface StorageWorkspaceListOptions extends StorageOperationOptions {\n directory?: string | undefined;\n recursive?: boolean | undefined;\n limit?: number | undefined;\n cursor?: string | undefined;\n}\n\nexport type StorageWorkspaceSearchMatch = 'glob' | 'substring' | 'exact';\n\nexport interface StorageWorkspaceSearchOptions extends StorageOperationOptions {\n directory?: string | undefined;\n match?: StorageWorkspaceSearchMatch | undefined;\n caseInsensitive?: boolean | undefined;\n limit?: number | undefined;\n cursor?: string | undefined;\n}\n\ninterface StorageWorkspaceWriteCommon extends StorageOperationOptions {\n contentType?: string;\n metadata?: Record<string, string>;\n}\n\nexport type StorageWorkspaceWriteOptions = StorageWorkspaceWriteCommon &\n (\n | { mode: 'create' }\n | {\n mode: 'replace';\n etag: string;\n }\n );\n\nexport interface StorageWorkspaceMutationOptions extends StorageOperationOptions {\n etag: string;\n}\n\nexport type StorageWorkspaceBody = Extract<StorageBody, string | Uint8Array>;\n\nexport interface StorageWorkspace {\n readonly permissions: ReadonlySet<StorageWorkspacePermission>;\n readonly limits: Readonly<StorageWorkspaceLimits>;\n allows(permission: StorageWorkspacePermission): boolean;\n stat(\n path: string,\n options?: StorageOperationOptions,\n ): Promise<StorageWorkspaceFile>;\n readText(\n path: string,\n options?: StorageWorkspaceReadOptions,\n ): Promise<StorageWorkspaceTextFile>;\n list(options?: StorageWorkspaceListOptions): Promise<StorageWorkspacePage>;\n search(\n query: string,\n options?: StorageWorkspaceSearchOptions,\n ): Promise<StorageWorkspacePage>;\n writeFile(\n path: string,\n body: StorageWorkspaceBody,\n options: StorageWorkspaceWriteOptions,\n ): Promise<StorageWorkspaceFile>;\n copyFile(\n source: string,\n destination: string,\n options: StorageWorkspaceMutationOptions,\n ): Promise<StorageWorkspaceFile>;\n moveFile(\n source: string,\n destination: string,\n options: StorageWorkspaceMutationOptions,\n ): Promise<StorageWorkspaceFile>;\n deleteFile(\n path: string,\n options: StorageWorkspaceMutationOptions,\n ): Promise<void>;\n mount(\n directory: string,\n options?: StorageWorkspaceMountOptions,\n ): StorageWorkspace;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestm/storage",
3
- "version": "0.1.0-alpha.7",
3
+ "version": "0.1.0-alpha.8",
4
4
  "description": "Framework-neutral storage clients, capability-scoped agent workspaces, NestJS 12 integration, and guarded HTTP access.",
5
5
  "license": "MIT",
6
6
  "author": "Kauan Guesser",
@@ -90,7 +90,7 @@
90
90
  "files-sdk": "2.2.3"
91
91
  },
92
92
  "peerDependencies": {
93
- "@aws-sdk/client-s3": "^3.700.0",
93
+ "@aws-sdk/client-s3": "^3.919.0",
94
94
  "@aws-sdk/lib-storage": "^3.700.0",
95
95
  "@aws-sdk/s3-presigned-post": "^3.700.0",
96
96
  "@aws-sdk/s3-request-presigner": "^3.700.0",
@@ -147,7 +147,7 @@
147
147
  "@types/node": "26.1.2",
148
148
  "@types/supertest": "7.2.1",
149
149
  "@vitest/coverage-v8": "4.1.10",
150
- "ai": "7.0.52",
150
+ "ai": "7.0.64",
151
151
  "fastify": "5.11.2",
152
152
  "oxlint": "1.77.0",
153
153
  "prettier": "3.9.6",