backless-onedrive 0.2.3 → 0.3.1

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.
package/dist/index.js CHANGED
@@ -77,13 +77,32 @@ var OneDriveApi = class {
77
77
  const body = await checkResp.text();
78
78
  throw new Error(`Graph API ${checkResp.status}: ${body}`);
79
79
  }
80
- const resp = await this.request(`${GRAPH_API}/me/drive/items/${parentId}/children`, {
81
- method: "POST",
82
- headers: { "Content-Type": "application/json" },
83
- body: JSON.stringify({ name, folder: {} })
84
- });
85
- const item = await resp.json();
86
- folderId = item.id;
80
+ const h2 = await this.headers();
81
+ const createResp = await fetch(
82
+ `${GRAPH_API}/me/drive/items/${parentId}/children`,
83
+ {
84
+ method: "POST",
85
+ headers: { ...h2, "Content-Type": "application/json" },
86
+ body: JSON.stringify({ name, folder: {} })
87
+ }
88
+ );
89
+ if (createResp.status === 409) {
90
+ const body = await createResp.json();
91
+ if (body.error?.code !== "nameAlreadyExists") {
92
+ throw new Error(`Graph API 409: ${JSON.stringify(body)}`);
93
+ }
94
+ const retryResp = await this.request(
95
+ `${GRAPH_API}/me/drive/items/${parentId}:/${encodeURIComponent(name)}:`
96
+ );
97
+ const item = await retryResp.json();
98
+ folderId = item.id;
99
+ } else if (!createResp.ok) {
100
+ const body = await createResp.text();
101
+ throw new Error(`Graph API ${createResp.status}: ${body}`);
102
+ } else {
103
+ const item = await createResp.json();
104
+ folderId = item.id;
105
+ }
87
106
  }
88
107
  this.folderCache.set(cacheKey, folderId);
89
108
  return folderId;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/onedrive-api.ts"],"sourcesContent":["import type { CloudStorageApi, DriveFile } from \"backless-core\";\n\nconst GRAPH_API = \"https://graph.microsoft.com/v1.0\";\n\ninterface GraphItem {\n id: string;\n name: string;\n file?: { mimeType: string };\n folder?: object;\n lastModifiedDateTime: string;\n}\n\ninterface GraphList {\n value: GraphItem[];\n \"@odata.nextLink\"?: string;\n}\n\nfunction toDriveFile(item: GraphItem): DriveFile {\n return {\n id: item.id,\n name: item.name,\n mimeType: item.file?.mimeType ?? \"\",\n modifiedTime: item.lastModifiedDateTime,\n };\n}\n\nexport class OneDriveApi implements CloudStorageApi {\n private readonly folderCache = new Map<string, string>();\n\n constructor(private getToken: () => Promise<string | null>) {}\n\n private async headers(): Promise<HeadersInit> {\n const token = await this.getToken();\n if (!token) throw new Error(\"Not authenticated\");\n return { Authorization: `Bearer ${token}` };\n }\n\n private async request(url: string, init?: RequestInit): Promise<Response> {\n const h = await this.headers();\n const resp = await fetch(url, {\n ...init,\n headers: { ...h, ...init?.headers },\n });\n if (!resp.ok) {\n const body = await resp.text();\n throw new Error(`Graph API ${resp.status}: ${body}`);\n }\n return resp;\n }\n\n async getOrCreateAppFolder(name: string): Promise<string> {\n const cacheKey = `root:${name}`;\n const cached = this.folderCache.get(cacheKey);\n if (cached) return cached;\n\n const h = await this.headers();\n const checkResp = await fetch(\n `${GRAPH_API}/me/drive/root:/${encodeURIComponent(name)}:`,\n { headers: h }\n );\n\n let folderId: string;\n if (checkResp.ok) {\n const item = await checkResp.json() as GraphItem;\n folderId = item.id;\n } else {\n if (checkResp.status !== 404) {\n const body = await checkResp.text();\n throw new Error(`Graph API ${checkResp.status}: ${body}`);\n }\n const resp = await this.request(`${GRAPH_API}/me/drive/root/children`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ name, folder: {} }),\n });\n const item = await resp.json() as GraphItem;\n folderId = item.id;\n }\n\n this.folderCache.set(cacheKey, folderId);\n return folderId;\n }\n\n async ensureFolder(parentId: string, name: string): Promise<string> {\n const cacheKey = `${parentId}:${name}`;\n const cached = this.folderCache.get(cacheKey);\n if (cached) return cached;\n\n const h = await this.headers();\n const checkResp = await fetch(\n `${GRAPH_API}/me/drive/items/${parentId}:/${encodeURIComponent(name)}:`,\n { headers: h }\n );\n\n let folderId: string;\n if (checkResp.ok) {\n const item = await checkResp.json() as GraphItem;\n folderId = item.id;\n } else {\n if (checkResp.status !== 404) {\n const body = await checkResp.text();\n throw new Error(`Graph API ${checkResp.status}: ${body}`);\n }\n const resp = await this.request(`${GRAPH_API}/me/drive/items/${parentId}/children`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ name, folder: {} }),\n });\n const item = await resp.json() as GraphItem;\n folderId = item.id;\n }\n\n this.folderCache.set(cacheKey, folderId);\n return folderId;\n }\n\n private async listAllChildren(folderId: string): Promise<GraphItem[]> {\n const items: GraphItem[] = [];\n let url: string | undefined =\n `${GRAPH_API}/me/drive/items/${folderId}/children?$top=200&$orderby=name`;\n\n while (url) {\n const resp = await this.request(url);\n const data = await resp.json() as GraphList;\n items.push(...data.value);\n url = data[\"@odata.nextLink\"];\n }\n\n return items;\n }\n\n async listFiles(folderId: string): Promise<DriveFile[]> {\n const items = await this.listAllChildren(folderId);\n return items.filter((item) => item.file).map(toDriveFile);\n }\n\n async listFolders(parentId: string): Promise<DriveFile[]> {\n const items = await this.listAllChildren(parentId);\n return items.filter((item) => item.folder).map(toDriveFile);\n }\n\n async uploadJsonFile(folderId: string, name: string, data: unknown): Promise<string> {\n const h = await this.headers();\n const resp = await fetch(\n `${GRAPH_API}/me/drive/items/${folderId}:/${name}:/content`,\n {\n method: \"PUT\",\n headers: { ...h, \"Content-Type\": \"application/json\" },\n body: JSON.stringify(data),\n }\n );\n // 409 nameAlreadyExists: file was already uploaded (e.g. previous sync attempt\n // uploaded it but the response was lost, or two tabs pushed concurrently).\n // Changeset and snapshot files are immutable per-device, so the existing file\n // has the correct content — treat as success.\n if (resp.status === 409) {\n const body = await resp.json() as { error?: { code?: string } };\n if (body.error?.code === \"nameAlreadyExists\") return \"\";\n throw new Error(`Graph API 409: ${JSON.stringify(body)}`);\n }\n if (!resp.ok) {\n const body = await resp.text();\n throw new Error(`Graph API ${resp.status}: ${body}`);\n }\n const item = await resp.json() as GraphItem;\n return item.id;\n }\n\n async downloadJsonFile<T = unknown>(fileId: string): Promise<T> {\n const resp = await this.request(`${GRAPH_API}/me/drive/items/${fileId}/content`);\n return resp.json();\n }\n\n async uploadBinaryFile(folderId: string, name: string, mimeType: string, data: Blob): Promise<string> {\n const resp = await this.request(\n `${GRAPH_API}/me/drive/items/${folderId}:/${name}:/content`,\n {\n method: \"PUT\",\n headers: { \"Content-Type\": mimeType },\n body: data,\n }\n );\n const item = await resp.json() as GraphItem;\n return item.id;\n }\n\n async downloadBinaryFile(fileId: string): Promise<Blob> {\n const resp = await this.request(`${GRAPH_API}/me/drive/items/${fileId}/content`);\n return resp.blob();\n }\n\n async deleteFile(fileId: string): Promise<void> {\n await this.request(`${GRAPH_API}/me/drive/items/${fileId}`, { method: \"DELETE\" });\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/onedrive-api.ts"],"sourcesContent":["import type { CloudStorageApi, DriveFile } from \"backless-core\";\n\nconst GRAPH_API = \"https://graph.microsoft.com/v1.0\";\n\ninterface GraphItem {\n id: string;\n name: string;\n file?: { mimeType: string };\n folder?: object;\n lastModifiedDateTime: string;\n}\n\ninterface GraphList {\n value: GraphItem[];\n \"@odata.nextLink\"?: string;\n}\n\nfunction toDriveFile(item: GraphItem): DriveFile {\n return {\n id: item.id,\n name: item.name,\n mimeType: item.file?.mimeType ?? \"\",\n modifiedTime: item.lastModifiedDateTime,\n };\n}\n\nexport class OneDriveApi implements CloudStorageApi {\n private readonly folderCache = new Map<string, string>();\n\n constructor(private getToken: () => Promise<string | null>) {}\n\n private async headers(): Promise<HeadersInit> {\n const token = await this.getToken();\n if (!token) throw new Error(\"Not authenticated\");\n return { Authorization: `Bearer ${token}` };\n }\n\n private async request(url: string, init?: RequestInit): Promise<Response> {\n const h = await this.headers();\n const resp = await fetch(url, {\n ...init,\n headers: { ...h, ...init?.headers },\n });\n if (!resp.ok) {\n const body = await resp.text();\n throw new Error(`Graph API ${resp.status}: ${body}`);\n }\n return resp;\n }\n\n async getOrCreateAppFolder(name: string): Promise<string> {\n const cacheKey = `root:${name}`;\n const cached = this.folderCache.get(cacheKey);\n if (cached) return cached;\n\n const h = await this.headers();\n const checkResp = await fetch(\n `${GRAPH_API}/me/drive/root:/${encodeURIComponent(name)}:`,\n { headers: h }\n );\n\n let folderId: string;\n if (checkResp.ok) {\n const item = await checkResp.json() as GraphItem;\n folderId = item.id;\n } else {\n if (checkResp.status !== 404) {\n const body = await checkResp.text();\n throw new Error(`Graph API ${checkResp.status}: ${body}`);\n }\n const resp = await this.request(`${GRAPH_API}/me/drive/root/children`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ name, folder: {} }),\n });\n const item = await resp.json() as GraphItem;\n folderId = item.id;\n }\n\n this.folderCache.set(cacheKey, folderId);\n return folderId;\n }\n\n async ensureFolder(parentId: string, name: string): Promise<string> {\n const cacheKey = `${parentId}:${name}`;\n const cached = this.folderCache.get(cacheKey);\n if (cached) return cached;\n\n const h = await this.headers();\n const checkResp = await fetch(\n `${GRAPH_API}/me/drive/items/${parentId}:/${encodeURIComponent(name)}:`,\n { headers: h }\n );\n\n let folderId: string;\n if (checkResp.ok) {\n const item = await checkResp.json() as GraphItem;\n folderId = item.id;\n } else {\n if (checkResp.status !== 404) {\n const body = await checkResp.text();\n throw new Error(`Graph API ${checkResp.status}: ${body}`);\n }\n\n // Try to create the folder. A 409 nameAlreadyExists means two concurrent\n // callers both saw the 404 and raced — the folder now exists, so re-fetch it.\n const h2 = await this.headers();\n const createResp = await fetch(\n `${GRAPH_API}/me/drive/items/${parentId}/children`,\n {\n method: \"POST\",\n headers: { ...h2, \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ name, folder: {} }),\n }\n );\n\n if (createResp.status === 409) {\n const body = await createResp.json() as { error?: { code?: string } };\n if (body.error?.code !== \"nameAlreadyExists\") {\n throw new Error(`Graph API 409: ${JSON.stringify(body)}`);\n }\n // Re-fetch the folder that the racing caller created.\n const retryResp = await this.request(\n `${GRAPH_API}/me/drive/items/${parentId}:/${encodeURIComponent(name)}:`\n );\n const item = await retryResp.json() as GraphItem;\n folderId = item.id;\n } else if (!createResp.ok) {\n const body = await createResp.text();\n throw new Error(`Graph API ${createResp.status}: ${body}`);\n } else {\n const item = await createResp.json() as GraphItem;\n folderId = item.id;\n }\n }\n\n this.folderCache.set(cacheKey, folderId);\n return folderId;\n }\n\n private async listAllChildren(folderId: string): Promise<GraphItem[]> {\n const items: GraphItem[] = [];\n let url: string | undefined =\n `${GRAPH_API}/me/drive/items/${folderId}/children?$top=200&$orderby=name`;\n\n while (url) {\n const resp = await this.request(url);\n const data = await resp.json() as GraphList;\n items.push(...data.value);\n url = data[\"@odata.nextLink\"];\n }\n\n return items;\n }\n\n async listFiles(folderId: string): Promise<DriveFile[]> {\n const items = await this.listAllChildren(folderId);\n return items.filter((item) => item.file).map(toDriveFile);\n }\n\n async listFolders(parentId: string): Promise<DriveFile[]> {\n const items = await this.listAllChildren(parentId);\n return items.filter((item) => item.folder).map(toDriveFile);\n }\n\n async uploadJsonFile(folderId: string, name: string, data: unknown): Promise<string> {\n const h = await this.headers();\n const resp = await fetch(\n `${GRAPH_API}/me/drive/items/${folderId}:/${name}:/content`,\n {\n method: \"PUT\",\n headers: { ...h, \"Content-Type\": \"application/json\" },\n body: JSON.stringify(data),\n }\n );\n // 409 nameAlreadyExists: file was already uploaded (e.g. previous sync attempt\n // uploaded it but the response was lost, or two tabs pushed concurrently).\n // Changeset and snapshot files are immutable per-device, so the existing file\n // has the correct content — treat as success.\n if (resp.status === 409) {\n const body = await resp.json() as { error?: { code?: string } };\n if (body.error?.code === \"nameAlreadyExists\") return \"\";\n throw new Error(`Graph API 409: ${JSON.stringify(body)}`);\n }\n if (!resp.ok) {\n const body = await resp.text();\n throw new Error(`Graph API ${resp.status}: ${body}`);\n }\n const item = await resp.json() as GraphItem;\n return item.id;\n }\n\n async downloadJsonFile<T = unknown>(fileId: string): Promise<T> {\n const resp = await this.request(`${GRAPH_API}/me/drive/items/${fileId}/content`);\n return resp.json();\n }\n\n async uploadBinaryFile(folderId: string, name: string, mimeType: string, data: Blob): Promise<string> {\n const resp = await this.request(\n `${GRAPH_API}/me/drive/items/${folderId}:/${name}:/content`,\n {\n method: \"PUT\",\n headers: { \"Content-Type\": mimeType },\n body: data,\n }\n );\n const item = await resp.json() as GraphItem;\n return item.id;\n }\n\n async downloadBinaryFile(fileId: string): Promise<Blob> {\n const resp = await this.request(`${GRAPH_API}/me/drive/items/${fileId}/content`);\n return resp.blob();\n }\n\n async deleteFile(fileId: string): Promise<void> {\n await this.request(`${GRAPH_API}/me/drive/items/${fileId}`, { method: \"DELETE\" });\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backless-onedrive",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/mikocot/backless.git"
@@ -24,7 +24,7 @@
24
24
  "test:watch": "vitest"
25
25
  },
26
26
  "dependencies": {
27
- "backless-core": "^0.2.3"
27
+ "backless-core": "^0.3.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "tsup": "^8.0.0",