guratan 0.7.0 → 0.8.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/cli.d.ts CHANGED
@@ -1,31 +1,32 @@
1
- /// <reference types="node" />
2
1
  import { Readable, Writable } from 'stream';
3
- declare type Opts = {
2
+ type Opts = {
4
3
  stdin: Readable;
5
4
  stdout: Writable;
6
5
  stderr: Writable;
7
6
  };
8
- declare type OptsSend = Opts & {
7
+ type OptsSend = Opts & {
9
8
  fileId: string;
10
9
  parentId: string;
11
10
  destFileName: string;
12
11
  srcFileName: string;
13
12
  destMimeType: string;
14
13
  srcMimeType: string;
14
+ supportsAllDrives?: boolean;
15
15
  pipe: boolean;
16
16
  printId: boolean;
17
17
  };
18
- declare type OptsRecv = Opts & {
18
+ type OptsRecv = Opts & {
19
19
  fileId: string;
20
20
  parentId: string;
21
21
  srcFileName: string;
22
22
  destFileName: string;
23
23
  destMimeType: string;
24
+ supportsAllDrives?: boolean;
24
25
  pipe: boolean;
25
26
  removeBom: boolean;
26
27
  printId: boolean;
27
28
  };
28
- declare type OptsShare = Opts & {
29
+ type OptsShare = Opts & {
29
30
  fileId: string;
30
31
  parentId: string;
31
32
  destFileName: string;
@@ -39,9 +40,10 @@ declare type OptsShare = Opts & {
39
40
  transferOwnership?: boolean;
40
41
  sendNotificationEmail?: boolean;
41
42
  emailMessage: string;
43
+ supportsAllDrives?: boolean;
42
44
  printId: boolean;
43
45
  };
44
- export declare const cliSend: ({ fileId, parentId, destFileName, srcFileName, destMimeType, srcMimeType, pipe, printId, stdin, stdout, stderr }: OptsSend) => Promise<number>;
45
- export declare const cliRecv: ({ fileId, parentId, srcFileName, destFileName, destMimeType, printId, pipe, removeBom, stdout, stderr }: OptsRecv) => Promise<number>;
46
- export declare const cliShare: ({ fileId, parentId, destFileName, type, role, emailAddress, domain, allowFileDiscovery, view, moveToNewOwnersRoot, transferOwnership, sendNotificationEmail, emailMessage, printId, stdout, stderr }: OptsShare) => Promise<number>;
46
+ export declare const cliSend: ({ fileId, parentId, destFileName, srcFileName, destMimeType, srcMimeType, supportsAllDrives, pipe, printId, stdin, stdout, stderr }: OptsSend) => Promise<number>;
47
+ export declare const cliRecv: ({ fileId, parentId, srcFileName, destFileName, destMimeType, supportsAllDrives, printId, pipe, removeBom, stdout, stderr }: OptsRecv) => Promise<number>;
48
+ export declare const cliShare: ({ fileId, parentId, destFileName, type, role, emailAddress, domain, allowFileDiscovery, view, moveToNewOwnersRoot, transferOwnership, sendNotificationEmail, emailMessage, supportsAllDrives, printId, stdout, stderr }: OptsShare) => Promise<number>;
47
49
  export {};
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { driveClient } from './tdrive.js';
2
- export const cliSend = async ({ fileId, parentId, destFileName, srcFileName, destMimeType, srcMimeType, pipe, printId, stdin, stdout, stderr }) => {
2
+ export const cliSend = async ({ fileId, parentId, destFileName, srcFileName, destMimeType, srcMimeType, supportsAllDrives, pipe, printId, stdin, stdout, stderr }) => {
3
3
  try {
4
4
  const { sendFile } = await import('./tsend.js');
5
5
  const id = await sendFile(driveClient(), {
@@ -9,6 +9,7 @@ export const cliSend = async ({ fileId, parentId, destFileName, srcFileName, des
9
9
  srcFileName,
10
10
  destMimeType,
11
11
  srcMimeType,
12
+ supportsAllDrives: supportsAllDrives || false,
12
13
  srcStream: pipe ? stdin : undefined
13
14
  });
14
15
  if (printId) {
@@ -22,7 +23,7 @@ export const cliSend = async ({ fileId, parentId, destFileName, srcFileName, des
22
23
  }
23
24
  return 0;
24
25
  };
25
- export const cliRecv = async ({ fileId, parentId, srcFileName, destFileName, destMimeType, printId, pipe, removeBom, stdout, stderr }) => {
26
+ export const cliRecv = async ({ fileId, parentId, srcFileName, destFileName, destMimeType, supportsAllDrives, printId, pipe, removeBom, stdout, stderr }) => {
26
27
  try {
27
28
  const { recvFile } = await import('./trecv.js');
28
29
  const id = await recvFile(driveClient(), {
@@ -31,6 +32,7 @@ export const cliRecv = async ({ fileId, parentId, srcFileName, destFileName, des
31
32
  srcFileName,
32
33
  destFileName,
33
34
  destMimeType,
35
+ supportsAllDrives: supportsAllDrives || false,
34
36
  removeBom,
35
37
  destStream: pipe ? stdout : undefined
36
38
  });
@@ -45,7 +47,7 @@ export const cliRecv = async ({ fileId, parentId, srcFileName, destFileName, des
45
47
  }
46
48
  return 0;
47
49
  };
48
- export const cliShare = async ({ fileId, parentId, destFileName, type, role, emailAddress, domain, allowFileDiscovery, view, moveToNewOwnersRoot, transferOwnership, sendNotificationEmail, emailMessage, printId, stdout, stderr }) => {
50
+ export const cliShare = async ({ fileId, parentId, destFileName, type, role, emailAddress, domain, allowFileDiscovery, view, moveToNewOwnersRoot, transferOwnership, sendNotificationEmail, emailMessage, supportsAllDrives, printId, stdout, stderr }) => {
49
51
  try {
50
52
  const { createPermisson } = await import('./tshare.js');
51
53
  const id = await createPermisson(driveClient(), {
@@ -61,7 +63,8 @@ export const cliShare = async ({ fileId, parentId, destFileName, type, role, ema
61
63
  moveToNewOwnersRoot,
62
64
  transferOwnership,
63
65
  sendNotificationEmail,
64
- emailMessage
66
+ emailMessage,
67
+ supportsAllDrives: supportsAllDrives || false
65
68
  });
66
69
  if (printId) {
67
70
  stdout.write(id);
package/dist/main.js CHANGED
@@ -44,6 +44,12 @@ const argv = await yargs(hideBin(process.argv))
44
44
  default: '',
45
45
  description: 'Media mime-type'
46
46
  },
47
+ 'supports-all-drives': {
48
+ type: 'boolean',
49
+ required: false,
50
+ default: false,
51
+ description: 'Supports both My Drives and shared drives(`includeItemsFromAllDrives` is also enabled)'
52
+ },
47
53
  pipe: {
48
54
  type: 'boolean',
49
55
  required: false,
@@ -57,6 +63,21 @@ const argv = await yargs(hideBin(process.argv))
57
63
  description: 'Print the id of the file that is sended into remote'
58
64
  }
59
65
  });
66
+ }, async (argv) => {
67
+ process.exit(await cliSend({
68
+ fileId: argv['file-id'],
69
+ parentId: argv['parent-id'] || '',
70
+ destFileName: argv['dest-file-name'] || '',
71
+ srcFileName: argv['src-file-name'] || '',
72
+ destMimeType: argv['dest-mime-type'] || '',
73
+ srcMimeType: argv['src-mime-type'] || '',
74
+ pipe: argv['pipe'] || false,
75
+ supportsAllDrives: argv['supports-all-drives'] || false,
76
+ printId: argv['print-id'] || false,
77
+ stdin: process.stdin,
78
+ stdout: process.stdout,
79
+ stderr: process.stderr
80
+ }));
60
81
  })
61
82
  .command('recv [OPTIONS]', 'receive file from Google Drive to local file', (yargs) => {
62
83
  return yargs.options({
@@ -89,6 +110,12 @@ const argv = await yargs(hideBin(process.argv))
89
110
  default: '',
90
111
  description: 'Media mime-type'
91
112
  },
113
+ 'supports-all-drives': {
114
+ type: 'boolean',
115
+ required: false,
116
+ default: false,
117
+ description: 'Supports both My Drives and shared drives(`includeItemsFromAllDrives` is also enabled). It not used with "export" method(it has no `supportsAllDrives` parameter)'
118
+ },
92
119
  pipe: {
93
120
  type: 'boolean',
94
121
  required: false,
@@ -108,6 +135,21 @@ const argv = await yargs(hideBin(process.argv))
108
135
  description: 'Print the id of the file that is received from remote'
109
136
  }
110
137
  });
138
+ }, async (argv) => {
139
+ process.exit(await cliRecv({
140
+ fileId: argv['file-id'],
141
+ parentId: argv['parent-id'] || '',
142
+ srcFileName: argv['src-file-name'] || '',
143
+ destFileName: argv['dest-file-name'] || '',
144
+ destMimeType: argv['dest-mime-type'] || '',
145
+ supportsAllDrives: argv['supports-all-drives'] || false,
146
+ pipe: argv['pipe'] || false,
147
+ removeBom: argv['remove-bom'] || false,
148
+ printId: argv['print-id'] || false,
149
+ stdin: process.stdin,
150
+ stdout: process.stdout,
151
+ stderr: process.stderr
152
+ }));
111
153
  })
112
154
  .command('share [OPTIONS]', 'share file in Google Drive', (yargs) => {
113
155
  return yargs.options({
@@ -184,6 +226,12 @@ const argv = await yargs(hideBin(process.argv))
184
226
  default: '',
185
227
  description: 'A plain text custom message to include in the notification email.'
186
228
  },
229
+ 'supports-all-drives': {
230
+ type: 'boolean',
231
+ required: false,
232
+ default: false,
233
+ description: 'Supports both My Drives and shared drives(`includeItemsFromAllDrives` is also enabled)'
234
+ },
187
235
  'print-id': {
188
236
  type: 'boolean',
189
237
  required: false,
@@ -191,65 +239,29 @@ const argv = await yargs(hideBin(process.argv))
191
239
  description: 'print id of file that is sended into Google Drive'
192
240
  }
193
241
  });
242
+ }, async (argv) => {
243
+ process.exit(await cliShare({
244
+ fileId: argv['file-id'],
245
+ parentId: argv['parent-id'] || '',
246
+ destFileName: argv['dest-file-name'] || '',
247
+ type: argv['type'],
248
+ role: argv['role'],
249
+ emailAddress: argv['email-address'],
250
+ domain: argv['domain'],
251
+ view: argv['view'],
252
+ allowFileDiscovery: argv['allow-file-discovery'],
253
+ moveToNewOwnersRoot: argv['move-to-new-owners-root'],
254
+ transferOwnership: argv['transfer-ownership'],
255
+ sendNotificationEmail: argv['send-notification-email'],
256
+ printId: argv['print-id'] || false,
257
+ emailMessage: argv['email-message'],
258
+ supportsAllDrives: argv['supports-all-drives'] || false,
259
+ stdin: process.stdin,
260
+ stdout: process.stdout,
261
+ stderr: process.stderr
262
+ }));
194
263
  })
195
264
  .demandCommand()
196
- .demand(0)
265
+ .demand(1)
197
266
  .strictOptions(true)
198
267
  .help().argv;
199
- switch (`${argv._[0]}`) {
200
- case 'send':
201
- process.exit(await cliSend({
202
- fileId: argv['file-id'],
203
- parentId: argv['parent-id'] || '',
204
- destFileName: argv['dest-file-name'] || '',
205
- srcFileName: argv['src-file-name'] || '',
206
- destMimeType: argv['dest-mime-type'] || '',
207
- srcMimeType: argv['src-mime-type'] || '',
208
- pipe: argv['pipe'] || false,
209
- printId: argv['print-id'] || false,
210
- stdin: process.stdin,
211
- stdout: process.stdout,
212
- stderr: process.stderr
213
- }));
214
- break;
215
- case 'recv':
216
- process.exit(await cliRecv({
217
- fileId: argv['file-id'],
218
- parentId: argv['parent-id'] || '',
219
- srcFileName: argv['src-file-name'] || '',
220
- destFileName: argv['dest-file-name'] || '',
221
- destMimeType: argv['dest-mime-type'] || '',
222
- pipe: argv['pipe'] || false,
223
- removeBom: argv['remove-bom'] || false,
224
- printId: argv['print-id'] || false,
225
- stdin: process.stdin,
226
- stdout: process.stdout,
227
- stderr: process.stderr
228
- }));
229
- break;
230
- case 'share':
231
- process.exit(await cliShare({
232
- fileId: argv['file-id'],
233
- parentId: argv['parent-id'] || '',
234
- destFileName: argv['dest-file-name'] || '',
235
- type: argv['type'],
236
- role: argv['role'],
237
- emailAddress: argv['email-address'],
238
- domain: argv['domain'],
239
- view: argv['view'],
240
- allowFileDiscovery: argv['allow-file-discovery'],
241
- moveToNewOwnersRoot: argv['move-to-new-owners-root'],
242
- transferOwnership: argv['transfer-ownership'],
243
- sendNotificationEmail: argv['send-notification-email'],
244
- printId: argv['print-id'] || false,
245
- emailMessage: argv['email-message'],
246
- stdin: process.stdin,
247
- stdout: process.stdout,
248
- stderr: process.stderr
249
- }));
250
- break;
251
- default:
252
- console.log(argv);
253
- process.stderr.write(`unknown command: ${argv._[0]}\n`);
254
- process.exit(1);
255
- }
package/dist/tdrive.d.ts CHANGED
@@ -7,9 +7,10 @@ export declare class GetFileIdError extends Error {
7
7
  * @param drive - drive instance.
8
8
  * @param parentId - id of folder in Google Deive.
9
9
  * @param fileName - file name.
10
+ * @param [supportsAllDrives=false] - supports both My Drives and shared drives.
10
11
  * @returns id of file or blank(when file is not found)
11
12
  */
12
- export declare function getFileId(drive: drive_v3.Drive, parentId: string, fileName: string): Promise<string>;
13
+ export declare function getFileId(drive: drive_v3.Drive, parentId: string, fileName: string, supportsAllDrives?: boolean): Promise<string>;
13
14
  /**
14
15
  * Validate value that is used in query parameter.
15
16
  * return false if value has included "'">
package/dist/tdrive.js CHANGED
@@ -12,9 +12,10 @@ export class GetFileIdError extends Error {
12
12
  * @param drive - drive instance.
13
13
  * @param parentId - id of folder in Google Deive.
14
14
  * @param fileName - file name.
15
+ * @param [supportsAllDrives=false] - supports both My Drives and shared drives.
15
16
  * @returns id of file or blank(when file is not found)
16
17
  */
17
- export async function getFileId(drive, parentId, fileName) {
18
+ export async function getFileId(drive, parentId, fileName, supportsAllDrives = false) {
18
19
  try {
19
20
  if (validateQueryValue(parentId) === false) {
20
21
  throw new GetFileIdError(`Invalid paretnt id : ${parentId}`);
@@ -25,7 +26,9 @@ export async function getFileId(drive, parentId, fileName) {
25
26
  const list = await drive.files.list({
26
27
  pageSize: 10,
27
28
  q: `'${parentId}' in parents and name = '${fileName}'`,
28
- fields: 'files(id, name)'
29
+ fields: 'files(id, name)',
30
+ includeItemsFromAllDrives: supportsAllDrives, // 現状では supportsAllDrives が指定されていれば常に true にする
31
+ supportsAllDrives
29
32
  });
30
33
  if (list.data.files && list.data.files.length > 0) {
31
34
  return list.data.files[0].id || '';
package/dist/trecv.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Writable } from 'stream';
3
2
  import { drive_v3 } from '@googleapis/drive';
4
3
  export declare class DownloadFileError extends Error {
@@ -7,7 +6,7 @@ export declare class DownloadFileError extends Error {
7
6
  /**
8
7
  * Options for recvFile().
9
8
  */
10
- export declare type RecvFileOpts = {
9
+ export type RecvFileOpts = {
11
10
  /**
12
11
  * @type The ID of the file or shared drive.
13
12
  */
@@ -29,6 +28,10 @@ export declare type RecvFileOpts = {
29
28
  * @type Media mime-type.
30
29
  */
31
30
  destMimeType: string;
31
+ /**
32
+ * Supports both My Drives and shared drives
33
+ */
34
+ supportsAllDrives?: boolean;
32
35
  /**
33
36
  * @type Remove BOM chars in receiving content.
34
37
  */
@@ -44,7 +47,7 @@ export declare type RecvFileOpts = {
44
47
  * @param opts - options.
45
48
  * @returns
46
49
  */
47
- export declare function downloadFile(drive: drive_v3.Drive, opts: Pick<RecvFileOpts, 'fileId' | 'destFileName' | 'destMimeType' | 'removeBom' | 'destStream'>): Promise<void>;
50
+ export declare function downloadFile(drive: drive_v3.Drive, opts: Pick<RecvFileOpts, 'fileId' | 'destFileName' | 'destMimeType' | 'supportsAllDrives' | 'removeBom' | 'destStream'>): Promise<void>;
48
51
  /**
49
52
  * Receive the file from Google Drive to the locale file
50
53
  * @param drive - drive instance.
package/dist/trecv.js CHANGED
@@ -20,7 +20,7 @@ export class DownloadFileError extends Error {
20
20
  export async function downloadFile(drive, opts) {
21
21
  let ret = undefined;
22
22
  try {
23
- const { fileId, destFileName, destMimeType, destStream, removeBom } = opts;
23
+ const { fileId, destFileName, destMimeType, destStream, supportsAllDrives, removeBom } = opts;
24
24
  let dest = destStream ? destStream : fs.createWriteStream(destFileName);
25
25
  try {
26
26
  if (destMimeType) {
@@ -39,7 +39,8 @@ export async function downloadFile(drive, opts) {
39
39
  else {
40
40
  const params = {
41
41
  fileId,
42
- alt: 'media'
42
+ alt: 'media',
43
+ supportsAllDrives: supportsAllDrives || false
43
44
  };
44
45
  const res = await drive.files.get(params, { responseType: 'stream' });
45
46
  await promisePipeline(res.data, dest);
@@ -73,11 +74,13 @@ export async function downloadFile(drive, opts) {
73
74
  * @returns id of file in Google Drive
74
75
  */
75
76
  export async function recvFile(drive, opts) {
76
- const { fileId: inFileId, parentId, srcFileName, destFileName, destMimeType, removeBom, destStream } = opts;
77
+ const { fileId: inFileId, parentId, srcFileName, destFileName, destMimeType, supportsAllDrives, removeBom, destStream } = opts;
77
78
  if (destFileName === '' && destStream === undefined) {
78
79
  throw new Error('The destination is not specified');
79
80
  }
80
- let fileId = inFileId !== '' ? inFileId : await getFileId(drive, parentId, srcFileName);
81
+ let fileId = inFileId !== ''
82
+ ? inFileId
83
+ : await getFileId(drive, parentId, srcFileName, supportsAllDrives || false);
81
84
  if (fileId === '') {
82
85
  throw new GetFileIdError(
83
86
  // `The srouce file not found in paretnt id : ${srcFileName}, ${parentId}`
@@ -87,6 +90,7 @@ export async function recvFile(drive, opts) {
87
90
  fileId,
88
91
  destFileName,
89
92
  destMimeType,
93
+ supportsAllDrives,
90
94
  removeBom,
91
95
  destStream
92
96
  });
package/dist/tsend.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Readable } from 'stream';
3
2
  import { drive_v3 } from '@googleapis/drive';
4
3
  export declare class UploadFileError extends Error {
@@ -10,7 +9,7 @@ export declare class UpdateFileError extends Error {
10
9
  /**
11
10
  * Options for sendFile().
12
11
  */
13
- export declare type SendFileOpts = {
12
+ export type SendFileOpts = {
14
13
  /**
15
14
  * @type The ID of the file or shared drive.
16
15
  */
@@ -36,6 +35,10 @@ export declare type SendFileOpts = {
36
35
  * @type Media mime-type.
37
36
  */
38
37
  srcMimeType: string;
38
+ /**
39
+ * Supports both My Drives and shared drives
40
+ */
41
+ supportsAllDrives?: boolean;
39
42
  /**
40
43
  * @type The srouce content from stream. It passed by pipe option.
41
44
  */
@@ -47,7 +50,7 @@ export declare type SendFileOpts = {
47
50
  * @param opts - options.
48
51
  * @returns Print the id of the file that is sended into remote
49
52
  */
50
- export declare function uploadFile(drive: drive_v3.Drive, opts: Pick<SendFileOpts, 'parentId' | 'destFileName' | 'srcFileName' | 'destMimeType' | 'srcMimeType' | 'srcStream'>): Promise<string>;
53
+ export declare function uploadFile(drive: drive_v3.Drive, opts: Pick<SendFileOpts, 'parentId' | 'destFileName' | 'srcFileName' | 'destMimeType' | 'srcMimeType' | 'srcStream' | 'supportsAllDrives'>): Promise<string>;
51
54
  /**
52
55
  * Update file using by source file into Google Drive.
53
56
  * @param drive - drive instance.
@@ -56,7 +59,7 @@ export declare function uploadFile(drive: drive_v3.Drive, opts: Pick<SendFileOpt
56
59
  */
57
60
  export declare function updateFile(drive: drive_v3.Drive, opts: {
58
61
  fileId: string;
59
- } & Pick<SendFileOpts, 'srcFileName' | 'destMimeType' | 'srcMimeType' | 'srcStream'>): Promise<string>;
62
+ } & Pick<SendFileOpts, 'srcFileName' | 'destMimeType' | 'srcMimeType' | 'srcStream' | 'supportsAllDrives'>): Promise<string>;
60
63
  /**
61
64
  * Send file using by source file into Google Drive.
62
65
  * @param drive - drive instance.
package/dist/tsend.js CHANGED
@@ -23,7 +23,7 @@ export class UpdateFileError extends Error {
23
23
  */
24
24
  export async function uploadFile(drive, opts) {
25
25
  try {
26
- const { parentId, destFileName, srcFileName, destMimeType, srcMimeType, srcStream } = opts;
26
+ const { parentId, destFileName, srcFileName, destMimeType, srcMimeType, supportsAllDrives, srcStream } = opts;
27
27
  const params = {
28
28
  requestBody: {
29
29
  name: path.basename(destFileName),
@@ -32,7 +32,8 @@ export async function uploadFile(drive, opts) {
32
32
  media: {
33
33
  body: srcStream ? srcStream : fs.createReadStream(srcFileName)
34
34
  },
35
- fields: 'id'
35
+ fields: 'id',
36
+ supportsAllDrives: supportsAllDrives || false
36
37
  };
37
38
  if (destMimeType) {
38
39
  params.requestBody.mimeType = destMimeType;
@@ -55,14 +56,15 @@ export async function uploadFile(drive, opts) {
55
56
  */
56
57
  export async function updateFile(drive, opts) {
57
58
  try {
58
- const { fileId, srcFileName, destMimeType, srcMimeType, srcStream } = opts;
59
+ const { fileId, srcFileName, destMimeType, srcMimeType, srcStream, supportsAllDrives } = opts;
59
60
  const params = {
60
61
  fileId,
61
62
  requestBody: {},
62
63
  media: {
63
64
  body: srcStream ? srcStream : fs.createReadStream(srcFileName)
64
65
  },
65
- fields: 'id'
66
+ fields: 'id',
67
+ supportsAllDrives: supportsAllDrives || false
66
68
  };
67
69
  if (destMimeType) {
68
70
  params.requestBody.mimeType = destMimeType;
@@ -84,11 +86,13 @@ export async function updateFile(drive, opts) {
84
86
  * @returns id of file in Google Drive
85
87
  */
86
88
  export async function sendFile(drive, opts) {
87
- const { fileId: inFileId, parentId, destFileName, srcFileName, destMimeType, srcMimeType, srcStream } = opts;
89
+ const { fileId: inFileId, parentId, destFileName, srcFileName, destMimeType, srcMimeType, supportsAllDrives, srcStream } = opts;
88
90
  if (srcFileName === '' && srcStream === undefined) {
89
91
  throw new Error('The source content is not specified');
90
92
  }
91
- let fileId = inFileId !== '' ? inFileId : await getFileId(drive, parentId, destFileName);
93
+ let fileId = inFileId !== ''
94
+ ? inFileId
95
+ : await getFileId(drive, parentId, destFileName, supportsAllDrives || false);
92
96
  if (fileId === '') {
93
97
  return uploadFile(drive, {
94
98
  parentId,
@@ -96,6 +100,7 @@ export async function sendFile(drive, opts) {
96
100
  srcFileName,
97
101
  destMimeType,
98
102
  srcMimeType,
103
+ supportsAllDrives,
99
104
  srcStream
100
105
  });
101
106
  }
@@ -104,6 +109,7 @@ export async function sendFile(drive, opts) {
104
109
  srcFileName,
105
110
  destMimeType,
106
111
  srcMimeType,
112
+ supportsAllDrives,
107
113
  srcStream
108
114
  });
109
115
  }
package/dist/tshare.d.ts CHANGED
@@ -8,7 +8,7 @@ export declare class UpdatePermissonError extends Error {
8
8
  /**
9
9
  * Options for createPermisson().
10
10
  */
11
- export declare type CreatePermissonOpts = {
11
+ export type CreatePermissonOpts = {
12
12
  /**
13
13
  * @type The ID of the file or shared drive.
14
14
  */
@@ -61,6 +61,10 @@ export declare type CreatePermissonOpts = {
61
61
  * @type A plain text custom message to include in the notification email.
62
62
  */
63
63
  emailMessage: string;
64
+ /**
65
+ * Supports both My Drives and shared drives
66
+ */
67
+ supportsAllDrives?: boolean;
64
68
  };
65
69
  /**
66
70
  * Create permission
package/dist/tshare.js CHANGED
@@ -22,15 +22,17 @@ export class UpdatePermissonError extends Error {
22
22
  export async function createPermisson(drive, opts) {
23
23
  let created = false;
24
24
  try {
25
- const { fileId: inFileId, parentId, destFileName, type, role, emailAddress, domain, view, allowFileDiscovery, moveToNewOwnersRoot, transferOwnership, sendNotificationEmail, emailMessage } = opts;
26
- const fileId = inFileId || (await getFileId(drive, parentId, destFileName));
25
+ const { fileId: inFileId, parentId, destFileName, type, role, emailAddress, domain, view, allowFileDiscovery, moveToNewOwnersRoot, transferOwnership, sendNotificationEmail, emailMessage, supportsAllDrives } = opts;
26
+ const fileId = inFileId ||
27
+ (await getFileId(drive, parentId, destFileName, supportsAllDrives || false));
27
28
  const createParams = {
28
29
  requestBody: {
29
30
  type,
30
31
  role
31
32
  },
32
33
  fileId,
33
- fields: 'id'
34
+ fields: 'id',
35
+ supportsAllDrives: supportsAllDrives || false
34
36
  };
35
37
  if (emailAddress) {
36
38
  createParams.requestBody.emailAddress = emailAddress;
@@ -69,7 +71,8 @@ export async function createPermisson(drive, opts) {
69
71
  role
70
72
  },
71
73
  fileId,
72
- fields: 'id'
74
+ fields: 'id',
75
+ supportsAllDrives: supportsAllDrives || false
73
76
  });
74
77
  }
75
78
  return id;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "guratan",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "Tiny send tool for Google Drive",
5
5
  "author": "hankei6km <hankei6km@gmail.com> (https://github.com/hankei6km)",
6
6
  "license": "MIT",
@@ -34,18 +34,18 @@
34
34
  "csb:test": "npm test -- --runInBand --watchAll"
35
35
  },
36
36
  "dependencies": {
37
- "@googleapis/drive": "^2.3.0",
37
+ "@googleapis/drive": "^8.0.0",
38
38
  "strip-bom-stream": "^5.0.0",
39
- "yargs": "^17.3.1"
39
+ "yargs": "^18.0.0"
40
40
  },
41
41
  "devDependencies": {
42
- "@types/jest": "^27.4.1",
42
+ "@types/jest": "^30.0.0",
43
43
  "@types/node": "^16.11.26",
44
44
  "@types/yargs": "^17.0.9",
45
- "jest": "^27.5.1",
46
- "rimraf": "^3.0.2",
47
- "ts-jest": "^27.1.3",
48
- "ts-node": "^10.7.0",
49
- "typescript": "^4.6.2"
45
+ "jest": "^30.0.0",
46
+ "rimraf": "^6.0.0",
47
+ "ts-jest": "^29.1.1",
48
+ "ts-node": "^10.9.1",
49
+ "typescript": "^5.1.6"
50
50
  }
51
51
  }