microcms-js-sdk 3.0.0 → 3.1.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/README.md CHANGED
@@ -8,10 +8,9 @@ It helps you to use microCMS from JavaScript and Node.js applications.
8
8
 
9
9
  ### Install
10
10
 
11
- Install npm package.
11
+ #### Node.js
12
12
 
13
- [!NOTE]
14
- v3.0.0 or later requires Node.js **v18 or higher**.
13
+ Install npm package.
15
14
 
16
15
  ```bash
17
16
  $ npm install microcms-js-sdk
@@ -21,25 +20,45 @@ or
21
20
  $ yarn add microcms-js-sdk
22
21
  ```
23
22
 
24
- CDN support.
23
+ > [!IMPORTANT]
24
+ > v3.0.0 or later requires Node.js **v18 or higher**.
25
+
26
+ #### Browser(Self-hosting)
27
+
28
+ Download and unzip `microcms-js-sdk-x.y.z.tgz` from the [releases page](https://github.com/microcmsio/microcms-js-sdk/releases). Then, host it on any server of your choice and use it. The target file is `./dist/umd/microcms-js-sdk.js`.
29
+
30
+ ```html
31
+ <script src="./microcms-js-sdk.js"></script>
32
+ ```
33
+
34
+ #### Browser(CDN)
35
+
36
+ Please load and use the URL provided by an external provider.
25
37
 
26
38
  ```html
27
- <script src="https://unpkg.com/microcms-js-sdk@latest/dist/umd/microcms-js-sdk.js"></script>
39
+ <script src="https://cdn.jsdelivr.net/npm/microcms-js-sdk@3.1.1/dist/umd/microcms-js-sdk.min.js"></script>
40
+
41
+ or
42
+
43
+ <script src="https://cdn.jsdelivr.net/npm/microcms-js-sdk/dist/umd/microcms-js-sdk.min.js"></script>
28
44
  ```
29
45
 
46
+ > [!WARNING]
47
+ > The hosting service (unpkg.com) is not related to microCMS. For production use, we recommend self-hosting on your own server.
48
+
30
49
  ### How to use
31
50
 
32
51
  First, create a client.
33
52
 
34
53
  ```javascript
35
- const { createClient } = require("microcms-js-sdk"); // CommonJS
54
+ const { createClient } = require('microcms-js-sdk'); // CommonJS
36
55
  import { createClient } from 'microcms-js-sdk'; //ES6
37
56
 
38
57
  // Initialize Client SDK.
39
58
  const client = createClient({
40
- serviceDomain: "YOUR_DOMAIN", // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io
41
- apiKey: "YOUR_API_KEY",
42
- // retry: true // Retry attempts up to a maximum of two times.
59
+ serviceDomain: 'YOUR_DOMAIN', // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io
60
+ apiKey: 'YOUR_API_KEY',
61
+ // retry: true // Retry attempts up to a maximum of two times.
43
62
  });
44
63
  ```
45
64
 
@@ -47,14 +66,14 @@ When using with a browser.
47
66
 
48
67
  ```html
49
68
  <script>
50
- const { createClient } = microcms;
51
-
52
- // Initialize Client SDK.
53
- const client = createClient({
54
- serviceDomain: "YOUR_DOMAIN", // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io
55
- apiKey: "YOUR_API_KEY",
56
- // retry: true // Retry attempts up to a maximum of two times.
57
- });
69
+ const { createClient } = microcms;
70
+
71
+ // Initialize Client SDK.
72
+ const client = createClient({
73
+ serviceDomain: 'YOUR_DOMAIN', // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io
74
+ apiKey: 'YOUR_API_KEY',
75
+ // retry: true // Retry attempts up to a maximum of two times.
76
+ });
58
77
  </script>
59
78
  ```
60
79
 
@@ -111,7 +130,7 @@ client
111
130
  #### Get all content ids
112
131
 
113
132
  This function can be used to retrieve all content IDs only.
114
- Since `filters` and `draftKey` can also be specified, it is possible to retrieve only the content IDs for a specific category, or to include content from a specific draft. \
133
+ Since `filters` and `draftKey` can also be specified, it is possible to retrieve only the content IDs for a specific category, or to include content from a specific draft. \
115
134
  The `alternateField` property can also be used to address cases where the value of a field other than content ID is used in a URL, etc.
116
135
 
117
136
  ```javascript
@@ -272,7 +291,7 @@ client
272
291
  .catch((err) => console.error(err));
273
292
  ```
274
293
 
275
- ### TypeScript
294
+ ### TypeScript
276
295
 
277
296
  If you are using TypeScript, use `getList`, `getListDetail`, `getObject`. This internally contains a common type of content.
278
297
 
@@ -289,7 +308,7 @@ type Content = {
289
308
  * totalCount: number;
290
309
  * limit: number;
291
310
  * offset: number;
292
- * }
311
+ * }
293
312
  */
294
313
  client.getList<Content>({ //other })
295
314
 
@@ -302,7 +321,7 @@ client.getList<Content>({ //other })
302
321
  * publishedAt?: string;
303
322
  * revisedAt?: string;
304
323
  * text: string; // This is Content type.
305
- * }
324
+ * }
306
325
  */
307
326
  client.getListDetail<Content>({ //other })
308
327
 
@@ -314,7 +333,7 @@ client.getListDetail<Content>({ //other })
314
333
  * publishedAt?: string;
315
334
  * revisedAt?: string;
316
335
  * text: string; // This is Content type.
317
- * }
336
+ * }
318
337
  */
319
338
  client.getObject<Content>({ //other })
320
339
  ```
@@ -333,9 +352,9 @@ Write functions can also be performed type-safely.
333
352
 
334
353
  ```typescript
335
354
  type Content = {
336
- title: string
337
- body?: string
338
- }
355
+ title: string;
356
+ body?: string;
357
+ };
339
358
 
340
359
  client.create<Content>({
341
360
  endpoint: 'endpoint',
@@ -344,7 +363,7 @@ client.create<Content>({
344
363
  title: 'title',
345
364
  body: 'body',
346
365
  },
347
- })
366
+ });
348
367
 
349
368
  client.update<Content>({
350
369
  endpoint: 'endpoint',
@@ -352,7 +371,7 @@ client.update<Content>({
352
371
  content: {
353
372
  body: 'body',
354
373
  },
355
- })
374
+ });
356
375
  ```
357
376
 
358
377
  ## CustomRequestInit
@@ -371,7 +390,7 @@ const response = await client.getList({
371
390
  revalidate: 60,
372
391
  },
373
392
  },
374
- endpoint: "endpoint",
393
+ endpoint: 'endpoint',
375
394
  });
376
395
  ```
377
396
 
@@ -380,17 +399,117 @@ const response = await client.getList({
380
399
  You can abort fetch requests.
381
400
 
382
401
  ```ts
383
- const controller = new AbortController()
402
+ const controller = new AbortController();
384
403
  const response = await client.getObject({
385
404
  customRequestInit: {
386
- signal: controller.signal
405
+ signal: controller.signal,
387
406
  },
388
- endpoint: "config",
407
+ endpoint: 'config',
389
408
  });
390
409
 
391
410
  setTimeout(() => {
392
- controller.abort()
393
- }, 1000)
411
+ controller.abort();
412
+ }, 1000);
413
+ ```
414
+
415
+ ## Management API
416
+
417
+ Clients can be created for the Management API.
418
+
419
+ ### How to use
420
+
421
+ First, create a client.
422
+
423
+ ```javascript
424
+ import { createManagementClient } from 'microcms-js-sdk'; //ES6
425
+
426
+ // Initialize Client SDK.
427
+ const client = createManagementClient({
428
+ serviceDomain: 'YOUR_DOMAIN', // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io
429
+ apiKey: 'YOUR_API_KEY',
430
+ });
431
+ ```
432
+
433
+ ### UploadMedia API
434
+
435
+ Media files can be uploaded using the 'POST /api/v1/media' endpoint of the Management API.
436
+
437
+ #### Node.js
438
+
439
+ ```javascript
440
+ // Blob
441
+ import { readFileSync } from 'fs';
442
+
443
+ const file = readFileSync('path/to/file');
444
+ client
445
+ .uploadMedia({
446
+ data: new Blob([file], { type: 'image/png' }),
447
+ name: 'image.png',
448
+ })
449
+ .then((res) => console.log(res))
450
+ .catch((err) => console.error(err));
451
+
452
+ // or ReadableStream
453
+ import { createReadStream } from 'fs';
454
+ import { Stream } from 'stream';
455
+
456
+ const file = createReadStream('path/to/file');
457
+ client
458
+ .uploadMedia({
459
+ data: Stream.Readable.toWeb(file),
460
+ name: 'image.png',
461
+ type: 'image/png',
462
+ })
463
+ .then((res) => console.log(res))
464
+ .catch((err) => console.error(err));
465
+
466
+ // or URL
467
+ client
468
+ .uploadMedia({
469
+ data: 'https://example.com/image.png',
470
+ // name: 'image.png', ← Optional
471
+ })
472
+ .then((res) => console.log(res))
473
+ .catch((err) => console.error(err));
474
+ ```
475
+
476
+ #### Browser
477
+
478
+ ```javascript
479
+ // File
480
+ const file = document.querySelector('input[type="file"]').files[0];
481
+ client
482
+ .uploadMedia({
483
+ data: file,
484
+ })
485
+ .then((res) => console.log(res))
486
+ .catch((err) => console.error(err));
487
+
488
+ // or URL
489
+ client
490
+ .uploadMedia({
491
+ data: 'https://example.com/image.png',
492
+ // name: 'image.png', ← Optional
493
+ })
494
+ .then((res) => console.log(res))
495
+ .catch((err) => console.error(err));
496
+ ```
497
+
498
+ ### Type Definition
499
+
500
+ #### UploadMedia
501
+
502
+ ```typescript
503
+ type UploadMediaRequest =
504
+ | { data: File }
505
+ | { data: Blob; name: string }
506
+ | { data: ReadableStream; name: string; type: `image/${string}` }
507
+ | {
508
+ data: URL | string;
509
+ name?: string | null | undefined;
510
+ customRequestHeaders?: HeadersInit;
511
+ };
512
+ function uploadMedia(params: UploadMediaRequest): Promise<{ url: string }>;
394
513
  ```
395
514
 
396
515
  ## Tips
@@ -401,14 +520,13 @@ setTimeout(() => {
401
520
  const readClient = createClient({
402
521
  serviceDomain: 'serviceDomain',
403
522
  apiKey: 'readApiKey',
404
- })
523
+ });
405
524
  const writeClient = createClient({
406
525
  serviceDomain: 'serviceDomain',
407
526
  apiKey: 'writeApiKey',
408
- })
527
+ });
409
528
  ```
410
529
 
411
-
412
530
  # LICENSE
413
531
 
414
532
  Apache-2.0
@@ -1 +1 @@
1
- function e(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function t(e){if(Array.isArray(e))return e}function r(t){if(Array.isArray(t))return e(t)}function n(e,t,r,n,i,o,u){try{var s=e[o](u);var c=s.value}catch(e){r(e);return}if(s.done){t(c)}else{Promise.resolve(c).then(n,i)}}function i(e){return function(){var t=this,r=arguments;return new Promise(function(i,o){var u=e.apply(t,r);function s(e){n(u,i,o,s,c,"next",e)}function c(e){n(u,i,o,s,c,"throw",e)}s(undefined)})}}function o(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function u(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function s(e,t){var r=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(r==null)return;var n=[];var i=true;var o=false;var u,s;try{for(r=r.call(e);!(i=(u=r.next()).done);i=true){n.push(u.value);if(t&&n.length===t)break}}catch(e){o=true;s=e}finally{try{if(!i&&r["return"]!=null)r["return"]()}finally{if(o)throw s}}return n}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var n=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}n.forEach(function(t){o(e,t,r[t])})}return e}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t){n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}r.push.apply(r,n)}return r}function d(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{f(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function p(e,r){return t(e)||s(e,r)||y(e,r)||c()}function h(e){return r(e)||u(e)||y(e)||a()}function y(t,r){if(!t)return;if(typeof t==="string")return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor)n=t.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,r)}function v(e,t){var r,n,i,o,u={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]};return(o={next:s(0),"throw":s(1),"return":s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o);function s(e){return function(t){return c([e,t])}}function c(o){if(r)throw new TypeError("Generator is already executing.");while(u)try{if(r=1,n&&(i=o[0]&2?n["return"]:o[0]?n["throw"]||((i=n["return"])&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;if(n=0,i)o=[o[0]&2,i.value];switch(o[0]){case 0:case 1:i=o;break;case 4:u.label++;return{value:o[1],done:false};case 5:u.label++;n=o[1];o=[0];continue;case 7:o=u.ops.pop();u.trys.pop();continue;default:if(!(i=u.trys,i=i.length>0&&i[i.length-1])&&(o[0]===6||o[0]===2)){u=0;continue}if(o[0]===3&&(!i||o[1]>i[0]&&o[1]<i[3])){u.label=o[1];break}if(o[0]===6&&u.label<i[1]){u.label=i[1];i=o;break}if(i&&u.label<i[2]){u.label=i[2];u.ops.push(o);break}if(i[2])u.ops.pop();u.trys.pop();continue}o=t.call(e,u)}catch(e){o=[6,e];n=0}finally{r=i=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}import b from"async-retry";var m=function(e){return function(){var t=i(function(t,r){var n,i;return v(this,function(o){i=new Headers((n=r)===null||n===void 0?void 0:n.headers);return[2,(i.has("X-MICROCMS-API-KEY")||i.set("X-MICROCMS-API-KEY",e),fetch(t,d(l({},r),{headers:i})))]})});return function(e,r){return t.apply(this,arguments)}}()};var w="microcms.io",q="v1";var g=function(e){return e!==null&&typeof e=="object"},I=function(e){return typeof e=="string"};var j=function(e){if(!g(e))throw new Error("queries is not object");return new URLSearchParams(Object.entries(e).reduce(function(e,t){var r=p(t,2),n=r[0],i=r[1];return e[n]=String(i),e},{})).toString()};var O=function(e){var t=e.serviceDomain,r=e.apiKey,n=e.retry;if(!t||!r)throw new Error("parameter is required (check serviceDomain and apiKey)");if(!I(t)||!I(r))throw new Error("parameter is not string");var o="https://".concat(t,".").concat(w,"/api/").concat(q),u=function(){var e=i(function(e){var t,u,s,c,a,f,p,h,y;return v(this,function(w){switch(w.label){case 0:t=e.endpoint,u=e.contentId,s=e.queries,c=s===void 0?{}:s,a=e.requestInit;f=m(r),p=j(c),h="".concat(o,"/").concat(t).concat(u?"/".concat(u):"").concat(p?"?".concat(p):""),y=function(){var e=i(function(e){var t,r,n;return v(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);return[4,e.json()];case 1:t=i.sent(),r=t.message;return[2,r!==null&&r!==void 0?r:null];case 2:n=i.sent();return[2,null];case 3:return[2]}})});return function t(t){return e.apply(this,arguments)}}();return[4,b(function(){var e=i(function(e){var t,r,n,i,o,u,s,c,p;return v(this,function(v){switch(v.label){case 0:v.trys.push([0,6,,7]);return[4,f(h,d(l({},a),{method:(i=(r=a)===null||r===void 0?void 0:r.method)!==null&&i!==void 0?i:"GET"}))];case 1:if(!(t=v.sent(),t.status!==429&&t.status>=400&&t.status<500))return[3,3];return[4,y(t)];case 2:o=v.sent();return[2,e(new Error("fetch API response status: ".concat(t.status).concat(o?"\n message is `".concat(o,"`"):"")))];case 3:if(!!t.ok)return[3,5];return[4,y(t)];case 4:u=v.sent();return[2,Promise.reject(new Error("fetch API response status: ".concat(t.status).concat(u?"\n message is `".concat(u,"`"):"")))];case 5:return[2,((n=a)===null||n===void 0?void 0:n.method)==="DELETE"?void 0:t.json()];case 6:s=v.sent();if(s.data)throw s.data;if((c=s.response)===null||c===void 0?void 0:c.data)throw s.response.data;return[2,Promise.reject(new Error("Network Error.\n Details: ".concat((p=s.message)!==null&&p!==void 0?p:"")))];case 7:return[2]}})});return function(t){return e.apply(this,arguments)}}(),{retries:n?2:0,onRetry:function(e,t){console.log(e),console.log("Waiting for retry (".concat(t,"/",2,")"))},minTimeout:5e3})];case 1:return[2,w.sent()]}})});return function t(t){return e.apply(this,arguments)}}();return{get:function(){var e=i(function(e){var t,r,n,i,o,s;return v(this,function(c){switch(c.label){case 0:t=e.endpoint,r=e.contentId,n=e.queries,i=n===void 0?{}:n,o=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,contentId:r,queries:i,requestInit:o})];case 1:s=c.sent();return[3,3];case 2:s=Promise.reject(new Error("endpoint is required"));c.label=3;case 3:return[2,s]}})});return function(t){return e.apply(this,arguments)}}(),getList:function(){var e=i(function(e){var t,r,n,i,o;return v(this,function(s){switch(s.label){case 0:t=e.endpoint,r=e.queries,n=r===void 0?{}:r,i=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,queries:n,requestInit:i})];case 1:o=s.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,o]}})});return function(t){return e.apply(this,arguments)}}(),getListDetail:function(){var e=i(function(e){var t,r,n,i,o,s;return v(this,function(c){switch(c.label){case 0:t=e.endpoint,r=e.contentId,n=e.queries,i=n===void 0?{}:n,o=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,contentId:r,queries:i,requestInit:o})];case 1:s=c.sent();return[3,3];case 2:s=Promise.reject(new Error("endpoint is required"));c.label=3;case 3:return[2,s]}})});return function(t){return e.apply(this,arguments)}}(),getObject:function(){var e=i(function(e){var t,r,n,i,o;return v(this,function(s){switch(s.label){case 0:t=e.endpoint,r=e.queries,n=r===void 0?{}:r,i=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,queries:n,requestInit:i})];case 1:o=s.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,o]}})});return function(t){return e.apply(this,arguments)}}(),getAllContentIds:function(){var e=i(function(e){var t,r,n,i,o,s,c,a,f,p,y,b,m,w,q,g,I;return v(this,function(v){switch(v.label){case 0:t=e.endpoint,r=e.alternateField,n=e.draftKey,i=e.filters,o=e.orders,s=e.customRequestInit;c={draftKey:n,filters:i,orders:o,limit:100,fields:r!==null&&r!==void 0?r:"id",depth:0};return[4,u({endpoint:t,queries:d(l({},c),{limit:0}),requestInit:s})];case 1:a=v.sent(),f=a.totalCount,p=[],y=0,b=function(e){return new Promise(function(t){return setTimeout(t,e)})},m=function(e){return e.every(function(e){return typeof e=="string"})};v.label=2;case 2:if(!(p.length<f))return[3,7];return[4,u({endpoint:t,queries:d(l({},c),{offset:y}),requestInit:s})];case 3:w=v.sent(),q=w.contents,g=q.map(function(e){return e[r!==null&&r!==void 0?r:"id"]});if(!m(g))throw new Error("The value of the field specified by `alternateField` is not a string.");p=h(p).concat(h(g)),y+=100;I=p.length<f;if(!I)return[3,5];return[4,b(1e3)];case 4:I=v.sent();v.label=5;case 5:I;v.label=6;case 6:return[3,2];case 7:return[2,p]}})});return function(t){return e.apply(this,arguments)}}(),getAllContents:function(){var e=i(function(e){var t,r,n,i,o,s,c,a,f,p,h,y;return v(this,function(v){switch(v.label){case 0:t=e.endpoint,r=e.queries,n=r===void 0?{}:r,i=e.customRequestInit;return[4,u({endpoint:t,queries:d(l({},n),{limit:0}),requestInit:i})];case 1:o=v.sent(),s=o.totalCount,c=[],a=0,f=function(e){return new Promise(function(t){return setTimeout(t,e)})};v.label=2;case 2:if(!(c.length<s))return[3,7];return[4,u({endpoint:t,queries:d(l({},n),{limit:100,offset:a}),requestInit:i})];case 3:p=v.sent(),h=p.contents;c=c.concat(h),a+=100;y=c.length<s;if(!y)return[3,5];return[4,f(1e3)];case 4:y=v.sent();v.label=5;case 5:y;v.label=6;case 6:return[3,2];case 7:return[2,c]}})});return function(t){return e.apply(this,arguments)}}(),create:function(){var e=i(function(e){var t,r,n,i,o,s,c,a;return v(this,function(f){t=e.endpoint,r=e.contentId,n=e.content,i=e.isDraft,o=i===void 0?!1:i,s=e.customRequestInit;if(!t)return[2,Promise.reject(new Error("endpoint is required"))];c=o?{status:"draft"}:{},a=d(l({},s),{method:r?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:t,contentId:r,queries:c,requestInit:a})]})});return function(t){return e.apply(this,arguments)}}(),update:function(){var e=i(function(e){var t,r,n,i,o;return v(this,function(s){t=e.endpoint,r=e.contentId,n=e.content,i=e.customRequestInit;if(!t)return[2,Promise.reject(new Error("endpoint is required"))];o=d(l({},i),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:t,contentId:r,requestInit:o})]})});return function(t){return e.apply(this,arguments)}}(),delete:function(){var e=i(function(e){var t,r,n,i;return v(this,function(o){switch(o.label){case 0:t=e.endpoint,r=e.contentId,n=e.customRequestInit;if(!t)return[2,Promise.reject(new Error("endpoint is required"))];if(!r)return[2,Promise.reject(new Error("contentId is required"))];i=d(l({},n),{method:"DELETE",headers:{},body:void 0});return[4,u({endpoint:t,contentId:r,requestInit:i})];case 1:o.sent();return[2]}})});return function(t){return e.apply(this,arguments)}}()}};export{O as createClient};//# sourceMappingURL=microcms-js-sdk.js.map
1
+ function e(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function t(e){if(Array.isArray(e))return e}function r(t){if(Array.isArray(t))return e(t)}function n(e,t,r,n,i,o,u){try{var a=e[o](u);var s=a.value}catch(e){r(e);return}if(a.done){t(s)}else{Promise.resolve(s).then(n,i)}}function i(e){return function(){var t=this,r=arguments;return new Promise(function(i,o){var u=e.apply(t,r);function a(e){n(u,i,o,a,s,"next",e)}function s(e){n(u,i,o,a,s,"throw",e)}a(undefined)})}}function o(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function u(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function a(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function s(e,t){var r=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(r==null)return;var n=[];var i=true;var o=false;var u,a;try{for(r=r.call(e);!(i=(u=r.next()).done);i=true){n.push(u.value);if(t&&n.length===t)break}}catch(e){o=true;a=e}finally{try{if(!i&&r["return"]!=null)r["return"]()}finally{if(o)throw a}}return n}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var n=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}n.forEach(function(t){o(e,t,r[t])})}return e}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t){n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}r.push.apply(r,n)}return r}function p(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{d(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function h(e,r){return t(e)||s(e,r)||y(e,r)||c()}function v(e){return r(e)||a(e)||y(e)||l()}function y(t,r){if(!t)return;if(typeof t==="string")return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor)n=t.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,r)}function m(e,t){var r,n,i,o,u={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),"throw":a(1),"return":a(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(e){return function(t){return s([e,t])}}function s(o){if(r)throw new TypeError("Generator is already executing.");while(u)try{if(r=1,n&&(i=o[0]&2?n["return"]:o[0]?n["throw"]||((i=n["return"])&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;if(n=0,i)o=[o[0]&2,i.value];switch(o[0]){case 0:case 1:i=o;break;case 4:u.label++;return{value:o[1],done:false};case 5:u.label++;n=o[1];o=[0];continue;case 7:o=u.ops.pop();u.trys.pop();continue;default:if(!(i=u.trys,i=i.length>0&&i[i.length-1])&&(o[0]===6||o[0]===2)){u=0;continue}if(o[0]===3&&(!i||o[1]>i[0]&&o[1]<i[3])){u.label=o[1];break}if(o[0]===6&&u.label<i[1]){u.label=i[1];i=o;break}if(i&&u.label<i[2]){u.label=i[2];u.ops.push(o);break}if(i[2])u.ops.pop();u.trys.pop();continue}o=t.call(e,u)}catch(e){o=[6,e];n=0}finally{r=i=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}import b from"async-retry";var w=function(e){return function(){var t=i(function(t,r){var n;return m(this,function(i){n=new Headers(r===null||r===void 0?void 0:r.headers);return[2,(n.has("X-MICROCMS-API-KEY")||n.set("X-MICROCMS-API-KEY",e),fetch(t,p(f({},r),{headers:n})))]})});return function(e,r){return t.apply(this,arguments)}}()};var g="microcms.io",q="microcms-management.io",I="v1";var j=function(e){return e!==null&&typeof e=="object"},E=function(e){return typeof e=="string"};var P=function(e){if(!j(e))throw new Error("queries is not object");return new URLSearchParams(Object.entries(e).reduce(function(e,t){var r=h(t,2),n=r[0],i=r[1];return e[n]=String(i),e},{})).toString()};var O=function(e){var t=e.serviceDomain,r=e.apiKey,n=e.retry;if(!t||!r)throw new Error("parameter is required (check serviceDomain and apiKey)");if(!E(t)||!E(r))throw new Error("parameter is not string");var o="https://".concat(t,".").concat(g,"/api/").concat(I),u=function(){var e=i(function(e){var t,u,a,s,c,l,d,h,v;return m(this,function(y){switch(y.label){case 0:t=e.endpoint,u=e.contentId,a=e.queries,s=a===void 0?{}:a,c=e.requestInit;l=w(r),d=P(s),h="".concat(o,"/").concat(t).concat(u?"/".concat(u):"").concat(d?"?".concat(d):""),v=function(){var e=i(function(e){var t,r,n;return m(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);return[4,e.json()];case 1:t=i.sent(),r=t.message;return[2,r!==null&&r!==void 0?r:null];case 2:n=i.sent();return[2,null];case 3:return[2]}})});return function t(t){return e.apply(this,arguments)}}();return[4,b(function(){var e=i(function(e){var t,r,n,i,o,u,a;return m(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);return[4,l(h,p(f({},c),{method:(r=c===null||c===void 0?void 0:c.method)!==null&&r!==void 0?r:"GET"}))];case 1:if(!(t=s.sent(),t.status!==429&&t.status>=400&&t.status<500))return[3,3];return[4,v(t)];case 2:n=s.sent();return[2,e(new Error("fetch API response status: ".concat(t.status).concat(n?"\n message is `".concat(n,"`"):"")))];case 3:if(!!t.ok)return[3,5];return[4,v(t)];case 4:i=s.sent();return[2,Promise.reject(new Error("fetch API response status: ".concat(t.status).concat(i?"\n message is `".concat(i,"`"):"")))];case 5:return[2,(c===null||c===void 0?void 0:c.method)==="DELETE"?void 0:t.json()];case 6:o=s.sent();if(o.data)throw o.data;if((u=o.response)===null||u===void 0?void 0:u.data)throw o.response.data;return[2,Promise.reject(new Error("Network Error.\n Details: ".concat((a=o.message)!==null&&a!==void 0?a:"")))];case 7:return[2]}})});return function(t){return e.apply(this,arguments)}}(),{retries:n?2:0,onRetry:function(e,t){console.log(e),console.log("Waiting for retry (".concat(t,"/",2,")"))},minTimeout:5e3})];case 1:return[2,y.sent()]}})});return function t(t){return e.apply(this,arguments)}}();return{get:function(){var e=i(function(e){var t,r,n,i,o,a;return m(this,function(s){switch(s.label){case 0:t=e.endpoint,r=e.contentId,n=e.queries,i=n===void 0?{}:n,o=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,contentId:r,queries:i,requestInit:o})];case 1:a=s.sent();return[3,3];case 2:a=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,a]}})});return function(t){return e.apply(this,arguments)}}(),getList:function(){var e=i(function(e){var t,r,n,i,o;return m(this,function(a){switch(a.label){case 0:t=e.endpoint,r=e.queries,n=r===void 0?{}:r,i=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,queries:n,requestInit:i})];case 1:o=a.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));a.label=3;case 3:return[2,o]}})});return function(t){return e.apply(this,arguments)}}(),getListDetail:function(){var e=i(function(e){var t,r,n,i,o,a;return m(this,function(s){switch(s.label){case 0:t=e.endpoint,r=e.contentId,n=e.queries,i=n===void 0?{}:n,o=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,contentId:r,queries:i,requestInit:o})];case 1:a=s.sent();return[3,3];case 2:a=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,a]}})});return function(t){return e.apply(this,arguments)}}(),getObject:function(){var e=i(function(e){var t,r,n,i,o;return m(this,function(a){switch(a.label){case 0:t=e.endpoint,r=e.queries,n=r===void 0?{}:r,i=e.customRequestInit;if(!t)return[3,2];return[4,u({endpoint:t,queries:n,requestInit:i})];case 1:o=a.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));a.label=3;case 3:return[2,o]}})});return function(t){return e.apply(this,arguments)}}(),getAllContentIds:function(){var e=i(function(e){var t,r,n,i,o,a,s,c,l,d,h,y,b,w,g,q,I;return m(this,function(m){switch(m.label){case 0:t=e.endpoint,r=e.alternateField,n=e.draftKey,i=e.filters,o=e.orders,a=e.customRequestInit;s={draftKey:n,filters:i,orders:o,limit:100,fields:r!==null&&r!==void 0?r:"id",depth:0};return[4,u({endpoint:t,queries:p(f({},s),{limit:0}),requestInit:a})];case 1:c=m.sent(),l=c.totalCount,d=[],h=0,y=function(e){return new Promise(function(t){return setTimeout(t,e)})},b=function(e){return e.every(function(e){return typeof e=="string"})};m.label=2;case 2:if(!(d.length<l))return[3,7];return[4,u({endpoint:t,queries:p(f({},s),{offset:h}),requestInit:a})];case 3:w=m.sent(),g=w.contents,q=g.map(function(e){return e[r!==null&&r!==void 0?r:"id"]});if(!b(q))throw new Error("The value of the field specified by `alternateField` is not a string.");d=v(d).concat(v(q)),h+=100;I=d.length<l;if(!I)return[3,5];return[4,y(1e3)];case 4:I=m.sent();m.label=5;case 5:I;m.label=6;case 6:return[3,2];case 7:return[2,d]}})});return function(t){return e.apply(this,arguments)}}(),getAllContents:function(){var e=i(function(e){var t,r,n,i,o,a,s,c,l,d,h,v;return m(this,function(y){switch(y.label){case 0:t=e.endpoint,r=e.queries,n=r===void 0?{}:r,i=e.customRequestInit;return[4,u({endpoint:t,queries:p(f({},n),{limit:0}),requestInit:i})];case 1:o=y.sent(),a=o.totalCount,s=[],c=0,l=function(e){return new Promise(function(t){return setTimeout(t,e)})};y.label=2;case 2:if(!(s.length<a))return[3,7];return[4,u({endpoint:t,queries:p(f({},n),{limit:100,offset:c}),requestInit:i})];case 3:d=y.sent(),h=d.contents;s=s.concat(h),c+=100;v=s.length<a;if(!v)return[3,5];return[4,l(1e3)];case 4:v=y.sent();y.label=5;case 5:v;y.label=6;case 6:return[3,2];case 7:return[2,s]}})});return function(t){return e.apply(this,arguments)}}(),create:function(){var e=i(function(e){var t,r,n,i,o,a,s,c;return m(this,function(l){t=e.endpoint,r=e.contentId,n=e.content,i=e.isDraft,o=i===void 0?!1:i,a=e.customRequestInit;if(!t)return[2,Promise.reject(new Error("endpoint is required"))];s=o?{status:"draft"}:{},c=p(f({},a),{method:r?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:t,contentId:r,queries:s,requestInit:c})]})});return function(t){return e.apply(this,arguments)}}(),update:function(){var e=i(function(e){var t,r,n,i,o;return m(this,function(a){t=e.endpoint,r=e.contentId,n=e.content,i=e.customRequestInit;if(!t)return[2,Promise.reject(new Error("endpoint is required"))];o=p(f({},i),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:t,contentId:r,requestInit:o})]})});return function(t){return e.apply(this,arguments)}}(),delete:function(){var e=i(function(e){var t,r,n,i;return m(this,function(o){switch(o.label){case 0:t=e.endpoint,r=e.contentId,n=e.customRequestInit;if(!t)return[2,Promise.reject(new Error("endpoint is required"))];if(!r)return[2,Promise.reject(new Error("contentId is required"))];i=p(f({},n),{method:"DELETE",headers:{},body:void 0});return[4,u({endpoint:t,contentId:r,requestInit:i})];case 1:o.sent();return[2]}})});return function(t){return e.apply(this,arguments)}}()}};var S=function(e){var t=e.serviceDomain,r=e.apiKey;if(!t||!r)throw new Error("parameter is required (check serviceDomain and apiKey)");if(!E(t)||!E(r))throw new Error("parameter is not string");var n=function(){var e=i(function(e){var n,o,u,a,s,c,l,d,h,v,y,b,g,I,j,E;return m(this,function(O){switch(O.label){case 0:n=e.path,o=e.apiVersion,u=e.queries,a=u===void 0?{}:u,s=e.requestInit;c="https://".concat(t,".").concat(q,"/api/").concat(o),l=w(r),d=P(a),h="".concat(c,"/").concat(n).concat(d?"?".concat(d):""),v=function(){var e=i(function(e){var t,r,n;return m(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);return[4,e.json()];case 1:t=i.sent(),r=t.message;return[2,r!==null&&r!==void 0?r:null];case 2:n=i.sent();return[2,null];case 3:return[2]}})});return function t(t){return e.apply(this,arguments)}}();O.label=1;case 1:O.trys.push([1,3,,4]);return[4,l(h,p(f({},s),{method:(b=s===null||s===void 0?void 0:s.method)!==null&&b!==void 0?b:"GET"}))];case 2:y=O.sent();return[3,4];case 3:g=O.sent();if(g.data)throw g.data;if((I=g.response)===null||I===void 0?void 0:I.data)throw g.response.data;return[2,Promise.reject(new Error("Network Error.\n Details: ".concat((j=g.message)!==null&&j!==void 0?j:"")))];case 4:if(!!y.ok)return[3,6];return[4,v(y)];case 5:E=O.sent();return[2,Promise.reject(new Error("fetch API response status: ".concat(y.status).concat(E?"\n message is `".concat(E,"`"):"")))];case 6:return[2,y.json()]}})});return function t(t){return e.apply(this,arguments)}}();return{uploadMedia:function(){var e=i(function(e){var t,r,i,o,a,s,c,l,f,d,p,h;return m(this,function(v){switch(v.label){case 0:t=e.data,r=e.name,i=e.type,o=e.customRequestHeaders;a=new FormData;if(!u(t,Blob))return[3,1];if(t.name)a.set("file",t,t.name);else{if(!r)throw new Error("name is required when data is a Blob");a.set("file",t,r)}return[3,9];case 1:if(!u(t,ReadableStream))return[3,6];if(!r)throw new Error("name is required when data is a ReadableStream");if(!i)throw new Error("type is required when data is a ReadableStream");s=[],c=t.getReader();v.label=2;case 2:return[4,c.read()];case 3:if(!!(l=v.sent()).done)return[3,5];s.push(l.value);v.label=4;case 4:return[3,2];case 5:a.set("file",new Blob(s,{type:i}),r);return[3,9];case 6:if(!(typeof t=="string"||u(t,URL)))return[3,9];f=u(t,URL)?t:new URL(t);return[4,fetch(f.toString(),o?{headers:o}:void 0)];case 7:d=v.sent();return[4,d.blob()];case 8:p=v.sent(),h=new URL(d.url).pathname.split("/").pop();a.set("file",p,r!==null&&r!==void 0?r:h);v.label=9;case 9:return[2,n({path:"media",apiVersion:I,requestInit:{method:"POST",body:a}})]}})});return function(t){return e.apply(this,arguments)}}()}};export{O as createClient,S as createManagementClient};//# sourceMappingURL=microcms-js-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/createClient.ts","../../src/lib/fetch.ts","../../src/utils/constants.ts","../../src/utils/isCheckValue.ts","../../src/utils/parseQuery.ts"],"names":["retry","generateFetchClient","apiKey","req","init","headers","BASE_DOMAIN","API_VERSION","isObject","value","isString","parseQuery","queries","acc","key","createClient","serviceDomain","retryOption","baseUrl","makeRequest","endpoint","contentId","requestInit","fetchClient","queryString","url","getMessageFromResponse","response","message","bail","error","err","num","customRequestInit","alternateField","draftKey","filters","orders","defaultQueries","totalCount","contentIds","offset","sleep","ms","resolve","isStringArray","arr","item","contents","ids","content","_contents","isDraft"],"mappings":"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","sourcesContent":["/**\n * microCMS API SDK\n * https://github.com/microcmsio/microcms-js-sdk\n */\nimport retry from 'async-retry';\nimport { generateFetchClient } from './lib/fetch';\nimport {\n CreateRequest,\n DeleteRequest,\n GetAllContentIdsRequest,\n GetAllContentRequest,\n GetListDetailRequest,\n GetListRequest,\n GetObjectRequest,\n GetRequest,\n MakeRequest,\n MicroCMSClient,\n MicroCMSListContent,\n MicroCMSListResponse,\n MicroCMSObjectContent,\n MicroCMSQueries,\n UpdateRequest,\n WriteApiRequestResult,\n} from './types';\nimport {\n API_VERSION,\n BASE_DOMAIN,\n MAX_RETRY_COUNT,\n MIN_TIMEOUT_MS,\n} from './utils/constants';\nimport { isString } from './utils/isCheckValue';\nimport { parseQuery } from './utils/parseQuery';\n\n/**\n * Initialize SDK Client\n */\nexport const createClient = ({\n serviceDomain,\n apiKey,\n retry: retryOption,\n}: MicroCMSClient) => {\n if (!serviceDomain || !apiKey) {\n throw new Error('parameter is required (check serviceDomain and apiKey)');\n }\n\n if (!isString(serviceDomain) || !isString(apiKey)) {\n throw new Error('parameter is not string');\n }\n\n /**\n * Defined microCMS base URL\n */\n const baseUrl = `https://${serviceDomain}.${BASE_DOMAIN}/api/${API_VERSION}`;\n\n /**\n * Make request\n */\n const makeRequest = async ({\n endpoint,\n contentId,\n queries = {},\n requestInit,\n }: MakeRequest) => {\n const fetchClient = generateFetchClient(apiKey);\n const queryString = parseQuery(queries);\n const url = `${baseUrl}/${endpoint}${contentId ? `/${contentId}` : ''}${\n queryString ? `?${queryString}` : ''\n }`;\n\n const getMessageFromResponse = async (response: Response) => {\n // Enclose `response.json()` in a try since it may throw an error\n // Only return the `message` if there is a `message`\n try {\n const { message } = await response.json();\n return message ?? null;\n } catch (_) {\n return null;\n }\n };\n\n return await retry(\n async (bail) => {\n let response;\n try {\n response = await fetchClient(url, {\n ...requestInit,\n method: requestInit?.method ?? 'GET',\n });\n\n // If a status code in the 400 range other than 429 is returned, do not retry.\n if (\n response.status !== 429 &&\n response.status >= 400 &&\n response.status < 500\n ) {\n const message = await getMessageFromResponse(response);\n\n return bail(\n new Error(\n `fetch API response status: ${response.status}${\n message ? `\\n message is \\`${message}\\`` : ''\n }`,\n ),\n );\n }\n\n // If the response fails with any other status code, retry until the set number of attempts is reached.\n if (!response.ok) {\n const message = await getMessageFromResponse(response);\n\n return Promise.reject(\n new Error(\n `fetch API response status: ${response.status}${\n message ? `\\n message is \\`${message}\\`` : ''\n }`,\n ),\n );\n }\n\n if (requestInit?.method === 'DELETE') return;\n\n return response.json();\n } catch (error) {\n if (error.data) {\n throw error.data;\n }\n\n if (error.response?.data) {\n throw error.response.data;\n }\n\n return Promise.reject(\n new Error(`Network Error.\\n Details: ${error.message ?? ''}`),\n );\n }\n },\n {\n retries: retryOption ? MAX_RETRY_COUNT : 0,\n onRetry: (err, num) => {\n console.log(err);\n console.log(`Waiting for retry (${num}/${MAX_RETRY_COUNT})`);\n },\n minTimeout: MIN_TIMEOUT_MS,\n },\n );\n };\n\n /**\n * Get list and object API data for microCMS\n */\n const get = async <T = any>({\n endpoint,\n contentId,\n queries = {},\n customRequestInit,\n }: GetRequest): Promise<T> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n contentId,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n /**\n * Get list API data for microCMS\n */\n const getList = async <T = any>({\n endpoint,\n queries = {},\n customRequestInit,\n }: GetListRequest): Promise<MicroCMSListResponse<T>> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n /**\n * Get list API detail data for microCMS\n */\n const getListDetail = async <T = any>({\n endpoint,\n contentId,\n queries = {},\n customRequestInit,\n }: GetListDetailRequest): Promise<T & MicroCMSListContent> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n contentId,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n /**\n * Get object API data for microCMS\n */\n const getObject = async <T = any>({\n endpoint,\n queries = {},\n customRequestInit,\n }: GetObjectRequest): Promise<T & MicroCMSObjectContent> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n const getAllContentIds = async ({\n endpoint,\n alternateField,\n draftKey,\n filters,\n orders,\n customRequestInit,\n }: GetAllContentIdsRequest): Promise<string[]> => {\n const limit = 100;\n const defaultQueries: MicroCMSQueries = {\n draftKey,\n filters,\n orders,\n limit,\n fields: alternateField ?? 'id',\n depth: 0,\n };\n\n const { totalCount } = await makeRequest({\n endpoint,\n queries: { ...defaultQueries, limit: 0 },\n requestInit: customRequestInit,\n });\n\n let contentIds: string[] = [];\n let offset = 0;\n\n const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n const isStringArray = (arr: unknown[]): arr is string[] =>\n arr.every((item) => typeof item === 'string');\n\n while (contentIds.length < totalCount) {\n const { contents } = (await makeRequest({\n endpoint,\n queries: { ...defaultQueries, offset },\n requestInit: customRequestInit,\n })) as MicroCMSListResponse<Record<string, unknown>>;\n\n const ids = contents.map((content) => content[alternateField ?? 'id']);\n\n if (!isStringArray(ids)) {\n throw new Error(\n 'The value of the field specified by `alternateField` is not a string.',\n );\n }\n\n contentIds = [...contentIds, ...ids];\n\n offset += limit;\n if (contentIds.length < totalCount) {\n await sleep(1000); // sleep for 1 second before the next request\n }\n }\n\n return contentIds;\n };\n\n /**\n * Get all content API data for microCMS\n */\n const getAllContents = async <T = any>({\n endpoint,\n queries = {},\n customRequestInit,\n }: GetAllContentRequest): Promise<(T & MicroCMSListContent)[]> => {\n const limit = 100;\n\n const { totalCount } = await makeRequest({\n endpoint,\n queries: { ...queries, limit: 0 },\n requestInit: customRequestInit,\n });\n\n let contents: (T & MicroCMSListContent)[] = [];\n let offset = 0;\n\n const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\n while (contents.length < totalCount) {\n const { contents: _contents } = (await makeRequest({\n endpoint,\n queries: { ...queries, limit, offset },\n requestInit: customRequestInit,\n })) as MicroCMSListResponse<T>;\n\n contents = contents.concat(_contents);\n\n offset += limit;\n if (contents.length < totalCount) {\n await sleep(1000); // sleep for 1 second before the next request\n }\n }\n\n return contents;\n };\n\n /**\n * Create new content in the microCMS list API data\n */\n const create = async <T extends Record<string | number, any>>({\n endpoint,\n contentId,\n content,\n isDraft = false,\n customRequestInit,\n }: CreateRequest<T>): Promise<WriteApiRequestResult> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n\n const queries: MakeRequest['queries'] = isDraft ? { status: 'draft' } : {};\n const requestInit: MakeRequest['requestInit'] = {\n ...customRequestInit,\n method: contentId ? 'PUT' : 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(content),\n };\n\n return makeRequest({\n endpoint,\n contentId,\n queries,\n requestInit,\n });\n };\n\n /**\n * Update content in their microCMS list and object API data\n */\n const update = async <T extends Record<string | number, any>>({\n endpoint,\n contentId,\n content,\n customRequestInit,\n }: UpdateRequest<T>): Promise<WriteApiRequestResult> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n\n const requestInit: MakeRequest['requestInit'] = {\n ...customRequestInit,\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(content),\n };\n\n return makeRequest({\n endpoint,\n contentId,\n requestInit,\n });\n };\n\n /**\n * Delete content in their microCMS list and object API data\n */\n const _delete = async ({\n endpoint,\n contentId,\n customRequestInit,\n }: DeleteRequest): Promise<void> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n\n if (!contentId) {\n return Promise.reject(new Error('contentId is required'));\n }\n\n const requestInit: MakeRequest['requestInit'] = {\n ...customRequestInit,\n method: 'DELETE',\n headers: {},\n body: undefined,\n };\n\n await makeRequest({ endpoint, contentId, requestInit });\n };\n\n return {\n get,\n getList,\n getListDetail,\n getObject,\n getAllContentIds,\n getAllContents,\n create,\n update,\n delete: _delete,\n };\n};\n","import { Fetch } from 'src/types';\n\nexport const generateFetchClient = (apiKey: string): Fetch => {\n return async (req, init) => {\n const headers = new Headers(init?.headers);\n\n if (!headers.has('X-MICROCMS-API-KEY')) {\n headers.set('X-MICROCMS-API-KEY', apiKey);\n }\n\n return fetch(req, { ...init, headers });\n };\n};\n","export const BASE_DOMAIN = 'microcms.io';\nexport const API_VERSION = 'v1';\nexport const MAX_RETRY_COUNT = 2;\nexport const MIN_TIMEOUT_MS = 5000;\n","/**\n * Check object\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isObject = (value: unknown): value is Record<string, unknown> => {\n return value !== null && typeof value === 'object';\n};\n\n/**\n * Check string\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isString = (value: unknown): value is string => {\n return typeof value === 'string';\n};\n","/**\n * Parse query.\n *\n * @param {object} queries\n * @return {string} queryString\n */\nimport { MicroCMSQueries } from '../types';\nimport { isObject } from './isCheckValue';\n\nexport const parseQuery = (queries: MicroCMSQueries): string => {\n if (!isObject(queries)) {\n throw new Error('queries is not object');\n }\n const queryString = new URLSearchParams(\n Object.entries(queries).reduce(\n (acc, [key, value]) => {\n acc[key] = String(value);\n return acc;\n },\n {} as Record<string, string>,\n ),\n ).toString();\n\n return queryString;\n};\n"]}
1
+ {"version":3,"sources":["../../src/createClient.ts","../../src/lib/fetch.ts","../../src/utils/constants.ts","../../src/utils/isCheckValue.ts","../../src/utils/parseQuery.ts","../../src/createManagementClient.ts"],"names":["retry","generateFetchClient","apiKey","req","init","headers","BASE_DOMAIN","BASE_MANAGEMENT_DOMAIN","API_VERSION_1","isObject","value","isString","parseQuery","queries","acc","key","createClient","serviceDomain","retryOption","baseUrl","makeRequest","endpoint","contentId","requestInit","fetchClient","queryString","url","getMessageFromResponse","response","message","bail","error","err","num","customRequestInit","alternateField","draftKey","filters","orders","defaultQueries","totalCount","contentIds","offset","sleep","ms","resolve","isStringArray","arr","item","contents","ids","content","_contents","isDraft","createManagementClient","path","apiVersion","data","name","type","customRequestHeaders","formData","chunks","reader","chunk","blob","nameFromURL"],"mappings":"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","sourcesContent":["/**\n * microCMS API SDK\n * https://github.com/microcmsio/microcms-js-sdk\n */\nimport retry from 'async-retry';\nimport { generateFetchClient } from './lib/fetch';\nimport {\n CreateRequest,\n DeleteRequest,\n GetAllContentIdsRequest,\n GetAllContentRequest,\n GetListDetailRequest,\n GetListRequest,\n GetObjectRequest,\n GetRequest,\n MakeRequest,\n MicroCMSClient,\n MicroCMSListContent,\n MicroCMSListResponse,\n MicroCMSObjectContent,\n MicroCMSQueries,\n UpdateRequest,\n WriteApiRequestResult,\n} from './types';\nimport {\n API_VERSION_1,\n BASE_DOMAIN,\n MAX_RETRY_COUNT,\n MIN_TIMEOUT_MS,\n} from './utils/constants';\nimport { isString } from './utils/isCheckValue';\nimport { parseQuery } from './utils/parseQuery';\n\n/**\n * Initialize SDK Client\n */\nexport const createClient = ({\n serviceDomain,\n apiKey,\n retry: retryOption,\n}: MicroCMSClient) => {\n if (!serviceDomain || !apiKey) {\n throw new Error('parameter is required (check serviceDomain and apiKey)');\n }\n\n if (!isString(serviceDomain) || !isString(apiKey)) {\n throw new Error('parameter is not string');\n }\n\n /**\n * Defined microCMS base URL\n */\n const baseUrl = `https://${serviceDomain}.${BASE_DOMAIN}/api/${API_VERSION_1}`;\n\n /**\n * Make request\n */\n const makeRequest = async ({\n endpoint,\n contentId,\n queries = {},\n requestInit,\n }: MakeRequest) => {\n const fetchClient = generateFetchClient(apiKey);\n const queryString = parseQuery(queries);\n const url = `${baseUrl}/${endpoint}${contentId ? `/${contentId}` : ''}${\n queryString ? `?${queryString}` : ''\n }`;\n\n const getMessageFromResponse = async (response: Response) => {\n // Enclose `response.json()` in a try since it may throw an error\n // Only return the `message` if there is a `message`\n try {\n const { message } = await response.json();\n return message ?? null;\n } catch (_) {\n return null;\n }\n };\n\n return await retry(\n async (bail) => {\n let response;\n try {\n response = await fetchClient(url, {\n ...requestInit,\n method: requestInit?.method ?? 'GET',\n });\n\n // If a status code in the 400 range other than 429 is returned, do not retry.\n if (\n response.status !== 429 &&\n response.status >= 400 &&\n response.status < 500\n ) {\n const message = await getMessageFromResponse(response);\n\n return bail(\n new Error(\n `fetch API response status: ${response.status}${\n message ? `\\n message is \\`${message}\\`` : ''\n }`,\n ),\n );\n }\n\n // If the response fails with any other status code, retry until the set number of attempts is reached.\n if (!response.ok) {\n const message = await getMessageFromResponse(response);\n\n return Promise.reject(\n new Error(\n `fetch API response status: ${response.status}${\n message ? `\\n message is \\`${message}\\`` : ''\n }`,\n ),\n );\n }\n\n if (requestInit?.method === 'DELETE') return;\n\n return response.json();\n } catch (error) {\n if (error.data) {\n throw error.data;\n }\n\n if (error.response?.data) {\n throw error.response.data;\n }\n\n return Promise.reject(\n new Error(`Network Error.\\n Details: ${error.message ?? ''}`),\n );\n }\n },\n {\n retries: retryOption ? MAX_RETRY_COUNT : 0,\n onRetry: (err, num) => {\n console.log(err);\n console.log(`Waiting for retry (${num}/${MAX_RETRY_COUNT})`);\n },\n minTimeout: MIN_TIMEOUT_MS,\n },\n );\n };\n\n /**\n * Get list and object API data for microCMS\n */\n const get = async <T = any>({\n endpoint,\n contentId,\n queries = {},\n customRequestInit,\n }: GetRequest): Promise<T> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n contentId,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n /**\n * Get list API data for microCMS\n */\n const getList = async <T = any>({\n endpoint,\n queries = {},\n customRequestInit,\n }: GetListRequest): Promise<MicroCMSListResponse<T>> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n /**\n * Get list API detail data for microCMS\n */\n const getListDetail = async <T = any>({\n endpoint,\n contentId,\n queries = {},\n customRequestInit,\n }: GetListDetailRequest): Promise<T & MicroCMSListContent> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n contentId,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n /**\n * Get object API data for microCMS\n */\n const getObject = async <T = any>({\n endpoint,\n queries = {},\n customRequestInit,\n }: GetObjectRequest): Promise<T & MicroCMSObjectContent> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n return await makeRequest({\n endpoint,\n queries,\n requestInit: customRequestInit,\n });\n };\n\n const getAllContentIds = async ({\n endpoint,\n alternateField,\n draftKey,\n filters,\n orders,\n customRequestInit,\n }: GetAllContentIdsRequest): Promise<string[]> => {\n const limit = 100;\n const defaultQueries: MicroCMSQueries = {\n draftKey,\n filters,\n orders,\n limit,\n fields: alternateField ?? 'id',\n depth: 0,\n };\n\n const { totalCount } = await makeRequest({\n endpoint,\n queries: { ...defaultQueries, limit: 0 },\n requestInit: customRequestInit,\n });\n\n let contentIds: string[] = [];\n let offset = 0;\n\n const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n const isStringArray = (arr: unknown[]): arr is string[] =>\n arr.every((item) => typeof item === 'string');\n\n while (contentIds.length < totalCount) {\n const { contents } = (await makeRequest({\n endpoint,\n queries: { ...defaultQueries, offset },\n requestInit: customRequestInit,\n })) as MicroCMSListResponse<Record<string, unknown>>;\n\n const ids = contents.map((content) => content[alternateField ?? 'id']);\n\n if (!isStringArray(ids)) {\n throw new Error(\n 'The value of the field specified by `alternateField` is not a string.',\n );\n }\n\n contentIds = [...contentIds, ...ids];\n\n offset += limit;\n if (contentIds.length < totalCount) {\n await sleep(1000); // sleep for 1 second before the next request\n }\n }\n\n return contentIds;\n };\n\n /**\n * Get all content API data for microCMS\n */\n const getAllContents = async <T = any>({\n endpoint,\n queries = {},\n customRequestInit,\n }: GetAllContentRequest): Promise<(T & MicroCMSListContent)[]> => {\n const limit = 100;\n\n const { totalCount } = await makeRequest({\n endpoint,\n queries: { ...queries, limit: 0 },\n requestInit: customRequestInit,\n });\n\n let contents: (T & MicroCMSListContent)[] = [];\n let offset = 0;\n\n const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\n while (contents.length < totalCount) {\n const { contents: _contents } = (await makeRequest({\n endpoint,\n queries: { ...queries, limit, offset },\n requestInit: customRequestInit,\n })) as MicroCMSListResponse<T>;\n\n contents = contents.concat(_contents);\n\n offset += limit;\n if (contents.length < totalCount) {\n await sleep(1000); // sleep for 1 second before the next request\n }\n }\n\n return contents;\n };\n\n /**\n * Create new content in the microCMS list API data\n */\n const create = async <T extends Record<string | number, any>>({\n endpoint,\n contentId,\n content,\n isDraft = false,\n customRequestInit,\n }: CreateRequest<T>): Promise<WriteApiRequestResult> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n\n const queries: MakeRequest['queries'] = isDraft ? { status: 'draft' } : {};\n const requestInit: MakeRequest['requestInit'] = {\n ...customRequestInit,\n method: contentId ? 'PUT' : 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(content),\n };\n\n return makeRequest({\n endpoint,\n contentId,\n queries,\n requestInit,\n });\n };\n\n /**\n * Update content in their microCMS list and object API data\n */\n const update = async <T extends Record<string | number, any>>({\n endpoint,\n contentId,\n content,\n customRequestInit,\n }: UpdateRequest<T>): Promise<WriteApiRequestResult> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n\n const requestInit: MakeRequest['requestInit'] = {\n ...customRequestInit,\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(content),\n };\n\n return makeRequest({\n endpoint,\n contentId,\n requestInit,\n });\n };\n\n /**\n * Delete content in their microCMS list and object API data\n */\n const _delete = async ({\n endpoint,\n contentId,\n customRequestInit,\n }: DeleteRequest): Promise<void> => {\n if (!endpoint) {\n return Promise.reject(new Error('endpoint is required'));\n }\n\n if (!contentId) {\n return Promise.reject(new Error('contentId is required'));\n }\n\n const requestInit: MakeRequest['requestInit'] = {\n ...customRequestInit,\n method: 'DELETE',\n headers: {},\n body: undefined,\n };\n\n await makeRequest({ endpoint, contentId, requestInit });\n };\n\n return {\n get,\n getList,\n getListDetail,\n getObject,\n getAllContentIds,\n getAllContents,\n create,\n update,\n delete: _delete,\n };\n};\n","import { Fetch } from 'src/types';\n\nexport const generateFetchClient = (apiKey: string): Fetch => {\n return async (req, init) => {\n const headers = new Headers(init?.headers);\n\n if (!headers.has('X-MICROCMS-API-KEY')) {\n headers.set('X-MICROCMS-API-KEY', apiKey);\n }\n\n return fetch(req, { ...init, headers });\n };\n};\n","export const BASE_DOMAIN = 'microcms.io';\nexport const BASE_MANAGEMENT_DOMAIN = 'microcms-management.io';\nexport const API_VERSION_1 = 'v1';\nexport const API_VERSION_2 = 'v2';\nexport const MAX_RETRY_COUNT = 2;\nexport const MIN_TIMEOUT_MS = 5000;\n","/**\n * Check object\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isObject = (value: unknown): value is Record<string, unknown> => {\n return value !== null && typeof value === 'object';\n};\n\n/**\n * Check string\n *\n * @param {unknown} value\n * @returns {boolean}\n */\nexport const isString = (value: unknown): value is string => {\n return typeof value === 'string';\n};\n","/**\n * Parse query.\n *\n * @param {object} queries\n * @return {string} queryString\n */\nimport { MicroCMSQueries } from '../types';\nimport { isObject } from './isCheckValue';\n\nexport const parseQuery = (queries: MicroCMSQueries): string => {\n if (!isObject(queries)) {\n throw new Error('queries is not object');\n }\n const queryString = new URLSearchParams(\n Object.entries(queries).reduce(\n (acc, [key, value]) => {\n acc[key] = String(value);\n return acc;\n },\n {} as Record<string, string>,\n ),\n ).toString();\n\n return queryString;\n};\n","import { generateFetchClient } from './lib/fetch';\nimport { MicroCMSManagementClient, UploadMediaRequest } from './types';\nimport {\n API_VERSION_1,\n API_VERSION_2,\n BASE_MANAGEMENT_DOMAIN,\n} from './utils/constants';\nimport { isString } from './utils/isCheckValue';\nimport { parseQuery } from './utils/parseQuery';\n\ninterface MakeRequest {\n path: string;\n apiVersion: typeof API_VERSION_1 | typeof API_VERSION_2;\n queries?: Record<string, unknown>;\n requestInit?: RequestInit;\n}\n\nexport const createManagementClient = ({\n serviceDomain,\n apiKey,\n}: MicroCMSManagementClient) => {\n if (!serviceDomain || !apiKey) {\n throw new Error('parameter is required (check serviceDomain and apiKey)');\n }\n\n if (!isString(serviceDomain) || !isString(apiKey)) {\n throw new Error('parameter is not string');\n }\n\n /**\n * Make request\n */\n const makeRequest = async ({\n path,\n apiVersion,\n queries = {},\n requestInit,\n }: MakeRequest) => {\n /**\n * Defined microCMS base URL\n */\n const baseUrl = `https://${serviceDomain}.${BASE_MANAGEMENT_DOMAIN}/api/${apiVersion}`;\n\n const fetchClient = generateFetchClient(apiKey);\n const queryString = parseQuery(queries);\n const url = `${baseUrl}/${path}${queryString ? `?${queryString}` : ''}`;\n\n const getMessageFromResponse = async (response: Response) => {\n // Enclose `response.json()` in a try since it may throw an error\n // Only return the `message` if there is a `message`\n try {\n const { message } = await response.json();\n return message ?? null;\n } catch (_) {\n return null;\n }\n };\n\n let response: Response;\n try {\n response = await fetchClient(url, {\n ...requestInit,\n method: requestInit?.method ?? 'GET',\n });\n } catch (error) {\n if (error.data) {\n throw error.data;\n }\n\n if (error.response?.data) {\n throw error.response.data;\n }\n\n return Promise.reject(\n new Error(`Network Error.\\n Details: ${error.message ?? ''}`),\n );\n }\n\n // If the response fails with any other status code, retry until the set number of attempts is reached.\n if (!response.ok) {\n const message = await getMessageFromResponse(response);\n\n return Promise.reject(\n new Error(\n `fetch API response status: ${response.status}${\n message ? `\\n message is \\`${message}\\`` : ''\n }`,\n ),\n );\n }\n\n return response.json();\n };\n\n const uploadMedia = async ({\n data,\n name,\n type,\n customRequestHeaders,\n }: UploadMediaRequest): Promise<{ url: string }> => {\n const formData = new FormData();\n\n if (data instanceof Blob) {\n // Node.jsではFile APIはnode:bufferからのみサポートされているため、instance of Fileでは判定せずにnameプロパティが存在するかで判定する\n if ((data as File).name) {\n formData.set('file', data, (data as File).name);\n } else {\n if (!name) {\n throw new Error('name is required when data is a Blob');\n }\n formData.set('file', data, name);\n }\n } else if (data instanceof ReadableStream) {\n if (!name) {\n throw new Error('name is required when data is a ReadableStream');\n }\n if (!type) {\n throw new Error('type is required when data is a ReadableStream');\n }\n\n const chunks = [];\n const reader = data.getReader();\n\n let chunk;\n while (!(chunk = await reader.read()).done) {\n chunks.push(chunk.value);\n }\n\n formData.set('file', new Blob(chunks, { type }), name);\n } else if (typeof data === 'string' || data instanceof URL) {\n const url = data instanceof URL ? data : new URL(data);\n const response = await fetch(\n url.toString(),\n customRequestHeaders ? { headers: customRequestHeaders } : undefined,\n );\n const blob = await response.blob();\n const nameFromURL = new URL(response.url).pathname.split('/').pop();\n formData.set('file', blob, name ?? nameFromURL);\n }\n\n return makeRequest({\n path: 'media',\n apiVersion: API_VERSION_1,\n requestInit: { method: 'POST', body: formData },\n });\n };\n\n return {\n uploadMedia,\n };\n};\n"]}
@@ -1 +1 @@
1
- "use strict";function t(t,e){if(e==null||e>t.length)e=t.length;for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function e(t){if(Array.isArray(t))return t}function r(e){if(Array.isArray(e))return t(e)}function n(t,e,r,n,i,o,u){try{var s=t[o](u);var a=s.value}catch(t){r(t);return}if(s.done){e(a)}else{Promise.resolve(a).then(n,i)}}function i(t){return function(){var e=this,r=arguments;return new Promise(function(i,o){var u=t.apply(e,r);function s(t){n(u,i,o,s,a,"next",t)}function a(t){n(u,i,o,s,a,"throw",t)}s(undefined)})}}function o(t,e,r){if(e in t){Object.defineProperty(t,e,{value:r,enumerable:true,configurable:true,writable:true})}else{t[e]=r}return t}function u(t,e){if(e!=null&&typeof Symbol!=="undefined"&&e[Symbol.hasInstance]){return!!e[Symbol.hasInstance](t)}else{return t instanceof e}}function s(t){if(typeof Symbol!=="undefined"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function a(t,e){var r=t==null?null:typeof Symbol!=="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(r==null)return;var n=[];var i=true;var o=false;var u,s;try{for(r=r.call(t);!(i=(u=r.next()).done);i=true){n.push(u.value);if(e&&n.length===e)break}}catch(t){o=true;s=t}finally{try{if(!i&&r["return"]!=null)r["return"]()}finally{if(o)throw s}}return n}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};var n=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))}n.forEach(function(e){o(t,e,r[e])})}return t}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);if(e){n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})}r.push.apply(r,n)}return r}function h(t,e){e=e!=null?e:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(t,Object.getOwnPropertyDescriptors(e))}else{p(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function m(t,r){return e(t)||a(t,r)||y(t,r)||c()}function d(t){return r(t)||s(t)||y(t)||f()}function y(e,r){if(!e)return;if(typeof e==="string")return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(e,r)}function v(t,e){var r,n,i,o,u={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]};return(o={next:s(0),"throw":s(1),"return":s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o);function s(t){return function(e){return a([t,e])}}function a(o){if(r)throw new TypeError("Generator is already executing.");while(u)try{if(r=1,n&&(i=o[0]&2?n["return"]:o[0]?n["throw"]||((i=n["return"])&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;if(n=0,i)o=[o[0]&2,i.value];switch(o[0]){case 0:case 1:i=o;break;case 4:u.label++;return{value:o[1],done:false};case 5:u.label++;n=o[1];o=[0];continue;case 7:o=u.ops.pop();u.trys.pop();continue;default:if(!(i=u.trys,i=i.length>0&&i[i.length-1])&&(o[0]===6||o[0]===2)){u=0;continue}if(o[0]===3&&(!i||o[1]>i[0]&&o[1]<i[3])){u.label=o[1];break}if(o[0]===6&&u.label<i[1]){u.label=i[1];i=o;break}if(i&&u.label<i[2]){u.label=i[2];u.ops.push(o);break}if(i[2])u.ops.pop();u.trys.pop();continue}o=e.call(t,u)}catch(t){o=[6,t];n=0}finally{r=i=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}var microcms=function(){var t=Object.create;var e=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty;var a=function(t,e){return function(){return e||t((e={exports:{}}).exports,e),e.exports}},c=function(t,r){for(var n in r)e(t,n,{get:r[n],enumerable:!0})},f=function(t,i,o,u){var a=true,c=false,f=undefined;if(i&&typeof i=="object"||typeof i=="function")try{var l=function(){var n=h.value;!s.call(t,n)&&n!==o&&e(t,n,{get:function(){return i[n]},enumerable:!(u=r(i,n))||u.enumerable})};for(var p=n(i)[Symbol.iterator](),h;!(a=(h=p.next()).done);a=true)l()}catch(t){c=true;f=t}finally{try{if(!a&&p.return!=null){p.return()}}finally{if(c){throw f}}}return t};var p=function(r,n,i){return i=r!=null?t(o(r)):{},f(n||!r||!r.__esModule?e(i,"default",{value:r,enumerable:!0}):i,r)},y=function(t){return f(e({},"__esModule",{value:!0}),t)};var b=a(function(t,e){"use strict";var r=function t(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))};e.exports=r;r.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};r.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};r.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),r=this._cachedTimeouts.slice(-1);else return!1;var n=this;return this._timer=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r),this._options.unref&&this._timer.unref(),!0};r.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};r.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};r.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};r.prototype.start=r.prototype.try;r.prototype.errors=function(){return this._errors};r.prototype.attempts=function(){return this._attempts};r.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,r=0,n=0;n<this._errors.length;n++){var i=this._errors[n],o=i.message,u=(t[o]||0)+1;t[o]=u,u>=r&&(e=i,r=u)}return e}});var w=a(function(t){"use strict";var e=b();t.operation=function(r){var n=t.timeouts(r);return new e(n,{forever:r&&(r.forever||r.retries===1/0),unref:r&&r.unref,maxRetryTime:r&&r.maxRetryTime})};t.timeouts=function(t){if(u(t,Array))return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in t)e[r]=t[r];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],i=0;i<e.retries;i++)n.push(this.createTimeout(i,e));return t&&t.forever&&!n.length&&n.push(this.createTimeout(i,e)),n.sort(function(t,e){return t-e}),n};t.createTimeout=function(t,e){var r=e.randomize?Math.random()+1:1,n=Math.round(r*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return n=Math.min(n,e.maxTimeout),n};t.wrap=function(e,r,n){if(u(r,Array)&&(n=r,r=null),!n){n=[];for(var i in e)typeof e[i]=="function"&&n.push(i)}for(var o=0;o<n.length;o++){var s=n[o],a=e[s];e[s]=(function(n){var i=t.operation(r),o=Array.prototype.slice.call(arguments,1),u=o.pop();o.push(function(t){i.retry(t)||(t&&(arguments[0]=i.mainError()),u.apply(this,arguments))}),i.attempt(function(){n.apply(e,o)})}).bind(e,a),e[s].options=r}}});var _=a(function(t,e){"use strict";e.exports=w()});var g=a(function(t,e){"use strict";var r=function t(t,e){function r(r,i){var o=e||{},u;"randomize"in o||(o.randomize=!0),u=n.operation(o);function s(t){i(t||new Error("Aborted"))}function a(t,e){if(t.bail){s(t);return}u.retry(t)?o.onRetry&&o.onRetry(t,e):i(u.mainError())}function c(e){var n;try{n=t(s,e)}catch(t){a(t,e);return}Promise.resolve(n).then(r).catch(function(t){a(t,e)})}u.attempt(c)}return new Promise(r)};var n=_();e.exports=r});var T={};c(T,{createClient:function(){return R}});var O=p(g());var I=function(t){return function(){var e=i(function(e,r){var n,i;return v(this,function(o){i=new Headers((n=r)===null||n===void 0?void 0:n.headers);return[2,(i.has("X-MICROCMS-API-KEY")||i.set("X-MICROCMS-API-KEY",t),fetch(e,h(l({},r),{headers:i})))]})});return function(t,r){return e.apply(this,arguments)}}()};var q="microcms.io",j="v1";var P=function(t){return t!==null&&typeof t=="object"},E=function(t){return typeof t=="string"};var S=function(t){if(!P(t))throw new Error("queries is not object");return new URLSearchParams(Object.entries(t).reduce(function(t,e){var r=m(e,2),n=r[0],i=r[1];return t[n]=String(i),t},{})).toString()};var R=function(t){var e=t.serviceDomain,r=t.apiKey,n=t.retry;if(!e||!r)throw new Error("parameter is required (check serviceDomain and apiKey)");if(!E(e)||!E(r))throw new Error("parameter is not string");var o="https://".concat(e,".").concat(q,"/api/").concat(j),u=function(){var t=i(function(t){var e,u,s,a,c,f,p,m,d;return v(this,function(y){switch(y.label){case 0:e=t.endpoint,u=t.contentId,s=t.queries,a=s===void 0?{}:s,c=t.requestInit;f=I(r),p=S(a),m="".concat(o,"/").concat(e).concat(u?"/".concat(u):"").concat(p?"?".concat(p):""),d=function(){var t=i(function(t){var e,r,n;return v(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);return[4,t.json()];case 1:e=i.sent(),r=e.message;return[2,r!==null&&r!==void 0?r:null];case 2:n=i.sent();return[2,null];case 3:return[2]}})});return function e(e){return t.apply(this,arguments)}}();return[4,(0,O.default)(function(){var t=i(function(t){var e,r,n,i,o,u,s,a,p;return v(this,function(y){switch(y.label){case 0:y.trys.push([0,6,,7]);return[4,f(m,h(l({},c),{method:(i=(r=c)===null||r===void 0?void 0:r.method)!==null&&i!==void 0?i:"GET"}))];case 1:if(!(e=y.sent(),e.status!==429&&e.status>=400&&e.status<500))return[3,3];return[4,d(e)];case 2:o=y.sent();return[2,t(new Error("fetch API response status: ".concat(e.status).concat(o?"\n message is `".concat(o,"`"):"")))];case 3:if(!!e.ok)return[3,5];return[4,d(e)];case 4:u=y.sent();return[2,Promise.reject(new Error("fetch API response status: ".concat(e.status).concat(u?"\n message is `".concat(u,"`"):"")))];case 5:return[2,((n=c)===null||n===void 0?void 0:n.method)==="DELETE"?void 0:e.json()];case 6:s=y.sent();if(s.data)throw s.data;if((a=s.response)===null||a===void 0?void 0:a.data)throw s.response.data;return[2,Promise.reject(new Error("Network Error.\n Details: ".concat((p=s.message)!==null&&p!==void 0?p:"")))];case 7:return[2]}})});return function(e){return t.apply(this,arguments)}}(),{retries:n?2:0,onRetry:function(t,e){console.log(t),console.log("Waiting for retry (".concat(e,"/",2,")"))},minTimeout:5e3})];case 1:return[2,y.sent()]}})});return function e(e){return t.apply(this,arguments)}}();return{get:function(){var t=i(function(t){var e,r,n,i,o,s;return v(this,function(a){switch(a.label){case 0:e=t.endpoint,r=t.contentId,n=t.queries,i=n===void 0?{}:n,o=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,contentId:r,queries:i,requestInit:o})];case 1:s=a.sent();return[3,3];case 2:s=Promise.reject(new Error("endpoint is required"));a.label=3;case 3:return[2,s]}})});return function(e){return t.apply(this,arguments)}}(),getList:function(){var t=i(function(t){var e,r,n,i,o;return v(this,function(s){switch(s.label){case 0:e=t.endpoint,r=t.queries,n=r===void 0?{}:r,i=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,queries:n,requestInit:i})];case 1:o=s.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,o]}})});return function(e){return t.apply(this,arguments)}}(),getListDetail:function(){var t=i(function(t){var e,r,n,i,o,s;return v(this,function(a){switch(a.label){case 0:e=t.endpoint,r=t.contentId,n=t.queries,i=n===void 0?{}:n,o=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,contentId:r,queries:i,requestInit:o})];case 1:s=a.sent();return[3,3];case 2:s=Promise.reject(new Error("endpoint is required"));a.label=3;case 3:return[2,s]}})});return function(e){return t.apply(this,arguments)}}(),getObject:function(){var t=i(function(t){var e,r,n,i,o;return v(this,function(s){switch(s.label){case 0:e=t.endpoint,r=t.queries,n=r===void 0?{}:r,i=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,queries:n,requestInit:i})];case 1:o=s.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,o]}})});return function(e){return t.apply(this,arguments)}}(),getAllContentIds:function(){var t=i(function(t){var e,r,n,i,o,s,a,c,f,p,m,y,b,w,_,g,T;return v(this,function(v){switch(v.label){case 0:e=t.endpoint,r=t.alternateField,n=t.draftKey,i=t.filters,o=t.orders,s=t.customRequestInit;a={draftKey:n,filters:i,orders:o,limit:100,fields:r!==null&&r!==void 0?r:"id",depth:0};return[4,u({endpoint:e,queries:h(l({},a),{limit:0}),requestInit:s})];case 1:c=v.sent(),f=c.totalCount,p=[],m=0,y=function(t){return new Promise(function(e){return setTimeout(e,t)})},b=function(t){return t.every(function(t){return typeof t=="string"})};v.label=2;case 2:if(!(p.length<f))return[3,7];return[4,u({endpoint:e,queries:h(l({},a),{offset:m}),requestInit:s})];case 3:w=v.sent(),_=w.contents,g=_.map(function(t){return t[r!==null&&r!==void 0?r:"id"]});if(!b(g))throw new Error("The value of the field specified by `alternateField` is not a string.");p=d(p).concat(d(g)),m+=100;T=p.length<f;if(!T)return[3,5];return[4,y(1e3)];case 4:T=v.sent();v.label=5;case 5:T;v.label=6;case 6:return[3,2];case 7:return[2,p]}})});return function(e){return t.apply(this,arguments)}}(),getAllContents:function(){var t=i(function(t){var e,r,n,i,o,s,a,c,f,p,m,d;return v(this,function(y){switch(y.label){case 0:e=t.endpoint,r=t.queries,n=r===void 0?{}:r,i=t.customRequestInit;return[4,u({endpoint:e,queries:h(l({},n),{limit:0}),requestInit:i})];case 1:o=y.sent(),s=o.totalCount,a=[],c=0,f=function(t){return new Promise(function(e){return setTimeout(e,t)})};y.label=2;case 2:if(!(a.length<s))return[3,7];return[4,u({endpoint:e,queries:h(l({},n),{limit:100,offset:c}),requestInit:i})];case 3:p=y.sent(),m=p.contents;a=a.concat(m),c+=100;d=a.length<s;if(!d)return[3,5];return[4,f(1e3)];case 4:d=y.sent();y.label=5;case 5:d;y.label=6;case 6:return[3,2];case 7:return[2,a]}})});return function(e){return t.apply(this,arguments)}}(),create:function(){var t=i(function(t){var e,r,n,i,o,s,a,c;return v(this,function(f){e=t.endpoint,r=t.contentId,n=t.content,i=t.isDraft,o=i===void 0?!1:i,s=t.customRequestInit;if(!e)return[2,Promise.reject(new Error("endpoint is required"))];a=o?{status:"draft"}:{},c=h(l({},s),{method:r?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:e,contentId:r,queries:a,requestInit:c})]})});return function(e){return t.apply(this,arguments)}}(),update:function(){var t=i(function(t){var e,r,n,i,o;return v(this,function(s){e=t.endpoint,r=t.contentId,n=t.content,i=t.customRequestInit;if(!e)return[2,Promise.reject(new Error("endpoint is required"))];o=h(l({},i),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:e,contentId:r,requestInit:o})]})});return function(e){return t.apply(this,arguments)}}(),delete:function(){var t=i(function(t){var e,r,n,i;return v(this,function(o){switch(o.label){case 0:e=t.endpoint,r=t.contentId,n=t.customRequestInit;if(!e)return[2,Promise.reject(new Error("endpoint is required"))];if(!r)return[2,Promise.reject(new Error("contentId is required"))];i=h(l({},n),{method:"DELETE",headers:{},body:void 0});return[4,u({endpoint:e,contentId:r,requestInit:i})];case 1:o.sent();return[2]}})});return function(e){return t.apply(this,arguments)}}()}};return y(T)}();//# sourceMappingURL=microcms-js-sdk.js.map
1
+ "use strict";function t(t,e){if(e==null||e>t.length)e=t.length;for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function e(t){if(Array.isArray(t))return t}function r(e){if(Array.isArray(e))return t(e)}function n(t,e,r,n,i,o,u){try{var a=t[o](u);var s=a.value}catch(t){r(t);return}if(a.done){e(s)}else{Promise.resolve(s).then(n,i)}}function i(t){return function(){var e=this,r=arguments;return new Promise(function(i,o){var u=t.apply(e,r);function a(t){n(u,i,o,a,s,"next",t)}function s(t){n(u,i,o,a,s,"throw",t)}a(undefined)})}}function o(t,e,r){if(e in t){Object.defineProperty(t,e,{value:r,enumerable:true,configurable:true,writable:true})}else{t[e]=r}return t}function u(t,e){if(e!=null&&typeof Symbol!=="undefined"&&e[Symbol.hasInstance]){return!!e[Symbol.hasInstance](t)}else{return t instanceof e}}function a(t){if(typeof Symbol!=="undefined"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function s(t,e){var r=t==null?null:typeof Symbol!=="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(r==null)return;var n=[];var i=true;var o=false;var u,a;try{for(r=r.call(t);!(i=(u=r.next()).done);i=true){n.push(u.value);if(e&&n.length===e)break}}catch(t){o=true;a=t}finally{try{if(!i&&r["return"]!=null)r["return"]()}finally{if(o)throw a}}return n}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};var n=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))}n.forEach(function(e){o(t,e,r[e])})}return t}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);if(e){n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})}r.push.apply(r,n)}return r}function h(t,e){e=e!=null?e:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(t,Object.getOwnPropertyDescriptors(e))}else{p(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function m(t,r){return e(t)||s(t,r)||v(t,r)||c()}function d(t){return r(t)||a(t)||v(t)||l()}function v(e,r){if(!e)return;if(typeof e==="string")return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor)n=e.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(e,r)}function y(t,e){var r,n,i,o,u={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),"throw":a(1),"return":a(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(t){return function(e){return s([t,e])}}function s(o){if(r)throw new TypeError("Generator is already executing.");while(u)try{if(r=1,n&&(i=o[0]&2?n["return"]:o[0]?n["throw"]||((i=n["return"])&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;if(n=0,i)o=[o[0]&2,i.value];switch(o[0]){case 0:case 1:i=o;break;case 4:u.label++;return{value:o[1],done:false};case 5:u.label++;n=o[1];o=[0];continue;case 7:o=u.ops.pop();u.trys.pop();continue;default:if(!(i=u.trys,i=i.length>0&&i[i.length-1])&&(o[0]===6||o[0]===2)){u=0;continue}if(o[0]===3&&(!i||o[1]>i[0]&&o[1]<i[3])){u.label=o[1];break}if(o[0]===6&&u.label<i[1]){u.label=i[1];i=o;break}if(i&&u.label<i[2]){u.label=i[2];u.ops.push(o);break}if(i[2])u.ops.pop();u.trys.pop();continue}o=e.call(t,u)}catch(t){o=[6,t];n=0}finally{r=i=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}var microcms=function(){var t=Object.create;var e=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var o=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty;var s=function(t,e){return function(){return e||t((e={exports:{}}).exports,e),e.exports}},c=function(t,r){for(var n in r)e(t,n,{get:r[n],enumerable:!0})},l=function(t,i,o,u){var s=true,c=false,l=undefined;if(i&&typeof i=="object"||typeof i=="function")try{var f=function(){var n=h.value;!a.call(t,n)&&n!==o&&e(t,n,{get:function(){return i[n]},enumerable:!(u=r(i,n))||u.enumerable})};for(var p=n(i)[Symbol.iterator](),h;!(s=(h=p.next()).done);s=true)f()}catch(t){c=true;l=t}finally{try{if(!s&&p.return!=null){p.return()}}finally{if(c){throw l}}}return t};var p=function(r,n,i){return i=r!=null?t(o(r)):{},l(n||!r||!r.__esModule?e(i,"default",{value:r,enumerable:!0}):i,r)},v=function(t){return l(e({},"__esModule",{value:!0}),t)};var b=s(function(t,e){"use strict";var r=function t(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))};e.exports=r;r.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};r.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};r.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),r=this._cachedTimeouts.slice(-1);else return!1;var n=this;return this._timer=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r),this._options.unref&&this._timer.unref(),!0};r.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};r.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};r.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};r.prototype.start=r.prototype.try;r.prototype.errors=function(){return this._errors};r.prototype.attempts=function(){return this._attempts};r.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,r=0,n=0;n<this._errors.length;n++){var i=this._errors[n],o=i.message,u=(t[o]||0)+1;t[o]=u,u>=r&&(e=i,r=u)}return e}});var w=s(function(t){"use strict";var e=b();t.operation=function(r){var n=t.timeouts(r);return new e(n,{forever:r&&(r.forever||r.retries===1/0),unref:r&&r.unref,maxRetryTime:r&&r.maxRetryTime})};t.timeouts=function(t){if(u(t,Array))return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in t)e[r]=t[r];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],i=0;i<e.retries;i++)n.push(this.createTimeout(i,e));return t&&t.forever&&!n.length&&n.push(this.createTimeout(i,e)),n.sort(function(t,e){return t-e}),n};t.createTimeout=function(t,e){var r=e.randomize?Math.random()+1:1,n=Math.round(r*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return n=Math.min(n,e.maxTimeout),n};t.wrap=function(e,r,n){if(u(r,Array)&&(n=r,r=null),!n){n=[];for(var i in e)typeof e[i]=="function"&&n.push(i)}for(var o=0;o<n.length;o++){var a=n[o],s=e[a];e[a]=(function(n){var i=t.operation(r),o=Array.prototype.slice.call(arguments,1),u=o.pop();o.push(function(t){i.retry(t)||(t&&(arguments[0]=i.mainError()),u.apply(this,arguments))}),i.attempt(function(){n.apply(e,o)})}).bind(e,s),e[a].options=r}}});var g=s(function(t,e){"use strict";e.exports=w()});var _=s(function(t,e){"use strict";var r=function t(t,e){function r(r,i){var o=e||{},u;"randomize"in o||(o.randomize=!0),u=n.operation(o);function a(t){i(t||new Error("Aborted"))}function s(t,e){if(t.bail){a(t);return}u.retry(t)?o.onRetry&&o.onRetry(t,e):i(u.mainError())}function c(e){var n;try{n=t(a,e)}catch(t){s(t,e);return}Promise.resolve(n).then(r).catch(function(t){s(t,e)})}u.attempt(c)}return new Promise(r)};var n=g();e.exports=r});var T={};c(T,{createClient:function(){return x},createManagementClient:function(){return A}});var q=p(_());var I=function(t){return function(){var e=i(function(e,r){var n;return y(this,function(i){n=new Headers(r===null||r===void 0?void 0:r.headers);return[2,(n.has("X-MICROCMS-API-KEY")||n.set("X-MICROCMS-API-KEY",t),fetch(e,h(f({},r),{headers:n})))]})});return function(t,r){return e.apply(this,arguments)}}()};var O="microcms.io",j="microcms-management.io",E="v1";var P=function(t){return t!==null&&typeof t=="object"},S=function(t){return typeof t=="string"};var R=function(t){if(!P(t))throw new Error("queries is not object");return new URLSearchParams(Object.entries(t).reduce(function(t,e){var r=m(e,2),n=r[0],i=r[1];return t[n]=String(i),t},{})).toString()};var x=function(t){var e=t.serviceDomain,r=t.apiKey,n=t.retry;if(!e||!r)throw new Error("parameter is required (check serviceDomain and apiKey)");if(!S(e)||!S(r))throw new Error("parameter is not string");var o="https://".concat(e,".").concat(O,"/api/").concat(E),u=function(){var t=i(function(t){var e,u,a,s,c,l,p,m,d;return y(this,function(v){switch(v.label){case 0:e=t.endpoint,u=t.contentId,a=t.queries,s=a===void 0?{}:a,c=t.requestInit;l=I(r),p=R(s),m="".concat(o,"/").concat(e).concat(u?"/".concat(u):"").concat(p?"?".concat(p):""),d=function(){var t=i(function(t){var e,r,n;return y(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);return[4,t.json()];case 1:e=i.sent(),r=e.message;return[2,r!==null&&r!==void 0?r:null];case 2:n=i.sent();return[2,null];case 3:return[2]}})});return function e(e){return t.apply(this,arguments)}}();return[4,(0,q.default)(function(){var t=i(function(t){var e,r,n,i,o,u,a;return y(this,function(s){switch(s.label){case 0:s.trys.push([0,6,,7]);return[4,l(m,h(f({},c),{method:(r=c===null||c===void 0?void 0:c.method)!==null&&r!==void 0?r:"GET"}))];case 1:if(!(e=s.sent(),e.status!==429&&e.status>=400&&e.status<500))return[3,3];return[4,d(e)];case 2:n=s.sent();return[2,t(new Error("fetch API response status: ".concat(e.status).concat(n?"\n message is `".concat(n,"`"):"")))];case 3:if(!!e.ok)return[3,5];return[4,d(e)];case 4:i=s.sent();return[2,Promise.reject(new Error("fetch API response status: ".concat(e.status).concat(i?"\n message is `".concat(i,"`"):"")))];case 5:return[2,(c===null||c===void 0?void 0:c.method)==="DELETE"?void 0:e.json()];case 6:o=s.sent();if(o.data)throw o.data;if((u=o.response)===null||u===void 0?void 0:u.data)throw o.response.data;return[2,Promise.reject(new Error("Network Error.\n Details: ".concat((a=o.message)!==null&&a!==void 0?a:"")))];case 7:return[2]}})});return function(e){return t.apply(this,arguments)}}(),{retries:n?2:0,onRetry:function(t,e){console.log(t),console.log("Waiting for retry (".concat(e,"/",2,")"))},minTimeout:5e3})];case 1:return[2,v.sent()]}})});return function e(e){return t.apply(this,arguments)}}();return{get:function(){var t=i(function(t){var e,r,n,i,o,a;return y(this,function(s){switch(s.label){case 0:e=t.endpoint,r=t.contentId,n=t.queries,i=n===void 0?{}:n,o=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,contentId:r,queries:i,requestInit:o})];case 1:a=s.sent();return[3,3];case 2:a=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,a]}})});return function(e){return t.apply(this,arguments)}}(),getList:function(){var t=i(function(t){var e,r,n,i,o;return y(this,function(a){switch(a.label){case 0:e=t.endpoint,r=t.queries,n=r===void 0?{}:r,i=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,queries:n,requestInit:i})];case 1:o=a.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));a.label=3;case 3:return[2,o]}})});return function(e){return t.apply(this,arguments)}}(),getListDetail:function(){var t=i(function(t){var e,r,n,i,o,a;return y(this,function(s){switch(s.label){case 0:e=t.endpoint,r=t.contentId,n=t.queries,i=n===void 0?{}:n,o=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,contentId:r,queries:i,requestInit:o})];case 1:a=s.sent();return[3,3];case 2:a=Promise.reject(new Error("endpoint is required"));s.label=3;case 3:return[2,a]}})});return function(e){return t.apply(this,arguments)}}(),getObject:function(){var t=i(function(t){var e,r,n,i,o;return y(this,function(a){switch(a.label){case 0:e=t.endpoint,r=t.queries,n=r===void 0?{}:r,i=t.customRequestInit;if(!e)return[3,2];return[4,u({endpoint:e,queries:n,requestInit:i})];case 1:o=a.sent();return[3,3];case 2:o=Promise.reject(new Error("endpoint is required"));a.label=3;case 3:return[2,o]}})});return function(e){return t.apply(this,arguments)}}(),getAllContentIds:function(){var t=i(function(t){var e,r,n,i,o,a,s,c,l,p,m,v,b,w,g,_,T;return y(this,function(y){switch(y.label){case 0:e=t.endpoint,r=t.alternateField,n=t.draftKey,i=t.filters,o=t.orders,a=t.customRequestInit;s={draftKey:n,filters:i,orders:o,limit:100,fields:r!==null&&r!==void 0?r:"id",depth:0};return[4,u({endpoint:e,queries:h(f({},s),{limit:0}),requestInit:a})];case 1:c=y.sent(),l=c.totalCount,p=[],m=0,v=function(t){return new Promise(function(e){return setTimeout(e,t)})},b=function(t){return t.every(function(t){return typeof t=="string"})};y.label=2;case 2:if(!(p.length<l))return[3,7];return[4,u({endpoint:e,queries:h(f({},s),{offset:m}),requestInit:a})];case 3:w=y.sent(),g=w.contents,_=g.map(function(t){return t[r!==null&&r!==void 0?r:"id"]});if(!b(_))throw new Error("The value of the field specified by `alternateField` is not a string.");p=d(p).concat(d(_)),m+=100;T=p.length<l;if(!T)return[3,5];return[4,v(1e3)];case 4:T=y.sent();y.label=5;case 5:T;y.label=6;case 6:return[3,2];case 7:return[2,p]}})});return function(e){return t.apply(this,arguments)}}(),getAllContents:function(){var t=i(function(t){var e,r,n,i,o,a,s,c,l,p,m,d;return y(this,function(v){switch(v.label){case 0:e=t.endpoint,r=t.queries,n=r===void 0?{}:r,i=t.customRequestInit;return[4,u({endpoint:e,queries:h(f({},n),{limit:0}),requestInit:i})];case 1:o=v.sent(),a=o.totalCount,s=[],c=0,l=function(t){return new Promise(function(e){return setTimeout(e,t)})};v.label=2;case 2:if(!(s.length<a))return[3,7];return[4,u({endpoint:e,queries:h(f({},n),{limit:100,offset:c}),requestInit:i})];case 3:p=v.sent(),m=p.contents;s=s.concat(m),c+=100;d=s.length<a;if(!d)return[3,5];return[4,l(1e3)];case 4:d=v.sent();v.label=5;case 5:d;v.label=6;case 6:return[3,2];case 7:return[2,s]}})});return function(e){return t.apply(this,arguments)}}(),create:function(){var t=i(function(t){var e,r,n,i,o,a,s,c;return y(this,function(l){e=t.endpoint,r=t.contentId,n=t.content,i=t.isDraft,o=i===void 0?!1:i,a=t.customRequestInit;if(!e)return[2,Promise.reject(new Error("endpoint is required"))];s=o?{status:"draft"}:{},c=h(f({},a),{method:r?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:e,contentId:r,queries:s,requestInit:c})]})});return function(e){return t.apply(this,arguments)}}(),update:function(){var t=i(function(t){var e,r,n,i,o;return y(this,function(a){e=t.endpoint,r=t.contentId,n=t.content,i=t.customRequestInit;if(!e)return[2,Promise.reject(new Error("endpoint is required"))];o=h(f({},i),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return[2,u({endpoint:e,contentId:r,requestInit:o})]})});return function(e){return t.apply(this,arguments)}}(),delete:function(){var t=i(function(t){var e,r,n,i;return y(this,function(o){switch(o.label){case 0:e=t.endpoint,r=t.contentId,n=t.customRequestInit;if(!e)return[2,Promise.reject(new Error("endpoint is required"))];if(!r)return[2,Promise.reject(new Error("contentId is required"))];i=h(f({},n),{method:"DELETE",headers:{},body:void 0});return[4,u({endpoint:e,contentId:r,requestInit:i})];case 1:o.sent();return[2]}})});return function(e){return t.apply(this,arguments)}}()}};var A=function(t){var e=t.serviceDomain,r=t.apiKey;if(!e||!r)throw new Error("parameter is required (check serviceDomain and apiKey)");if(!S(e)||!S(r))throw new Error("parameter is not string");var n=function(){var t=i(function(t){var n,o,u,a,s,c,l,p,m,d,v,b,w,g,_,T;return y(this,function(q){switch(q.label){case 0:n=t.path,o=t.apiVersion,u=t.queries,a=u===void 0?{}:u,s=t.requestInit;c="https://".concat(e,".").concat(j,"/api/").concat(o),l=I(r),p=R(a),m="".concat(c,"/").concat(n).concat(p?"?".concat(p):""),d=function(){var t=i(function(t){var e,r,n;return y(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);return[4,t.json()];case 1:e=i.sent(),r=e.message;return[2,r!==null&&r!==void 0?r:null];case 2:n=i.sent();return[2,null];case 3:return[2]}})});return function e(e){return t.apply(this,arguments)}}();q.label=1;case 1:q.trys.push([1,3,,4]);return[4,l(m,h(f({},s),{method:(b=s===null||s===void 0?void 0:s.method)!==null&&b!==void 0?b:"GET"}))];case 2:v=q.sent();return[3,4];case 3:w=q.sent();if(w.data)throw w.data;if((g=w.response)===null||g===void 0?void 0:g.data)throw w.response.data;return[2,Promise.reject(new Error("Network Error.\n Details: ".concat((_=w.message)!==null&&_!==void 0?_:"")))];case 4:if(!!v.ok)return[3,6];return[4,d(v)];case 5:T=q.sent();return[2,Promise.reject(new Error("fetch API response status: ".concat(v.status).concat(T?"\n message is `".concat(T,"`"):"")))];case 6:return[2,v.json()]}})});return function e(e){return t.apply(this,arguments)}}();return{uploadMedia:function(){var t=i(function(t){var e,r,i,o,a,s,c,l,f,p,h,m;return y(this,function(d){switch(d.label){case 0:e=t.data,r=t.name,i=t.type,o=t.customRequestHeaders;a=new FormData;if(!u(e,Blob))return[3,1];if(e.name)a.set("file",e,e.name);else{if(!r)throw new Error("name is required when data is a Blob");a.set("file",e,r)}return[3,9];case 1:if(!u(e,ReadableStream))return[3,6];if(!r)throw new Error("name is required when data is a ReadableStream");if(!i)throw new Error("type is required when data is a ReadableStream");s=[],c=e.getReader();d.label=2;case 2:return[4,c.read()];case 3:if(!!(l=d.sent()).done)return[3,5];s.push(l.value);d.label=4;case 4:return[3,2];case 5:a.set("file",new Blob(s,{type:i}),r);return[3,9];case 6:if(!(typeof e=="string"||u(e,URL)))return[3,9];f=u(e,URL)?e:new URL(e);return[4,fetch(f.toString(),o?{headers:o}:void 0)];case 7:p=d.sent();return[4,p.blob()];case 8:h=d.sent(),m=new URL(p.url).pathname.split("/").pop();a.set("file",h,r!==null&&r!==void 0?r:m);d.label=9;case 9:return[2,n({path:"media",apiVersion:E,requestInit:{method:"POST",body:a}})]}})});return function(e){return t.apply(this,arguments)}}()}};return v(T)}();//# sourceMappingURL=microcms-js-sdk.js.map