@fullcalendar/google-calendar 6.0.2 → 6.0.3

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.
@@ -1,9 +1,5 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var index_cjs = require('@fullcalendar/core/index.cjs');
6
- var internal_cjs = require('@fullcalendar/core/internal.cjs');
1
+ import { JsonRequestError, createPlugin } from '@fullcalendar/core';
2
+ import { requestJson, addDays, identity } from '@fullcalendar/core/internal';
7
3
 
8
4
  // TODO: expose somehow
9
5
  const API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';
@@ -36,9 +32,9 @@ const eventSourceDef = {
36
32
  let { extraParams } = meta;
37
33
  let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams;
38
34
  let requestParams = buildRequestParams(arg.range, apiKey, extraParamsObj, dateEnv);
39
- return internal_cjs.requestJson('GET', url, requestParams).then(([body, response]) => {
35
+ return requestJson('GET', url, requestParams).then(([body, response]) => {
40
36
  if (body.error) {
41
- errorCallback(new index_cjs.JsonRequestError('Google Calendar API: ' + body.error.message, response));
37
+ errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response));
42
38
  }
43
39
  else {
44
40
  successCallback({
@@ -83,8 +79,8 @@ function buildRequestParams(range, apiKey, extraParams, dateEnv) {
83
79
  // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day
84
80
  // from the UTC day-start to guarantee we're getting all the events
85
81
  // (start/end will be UTC-coerced dates, so toISOString is okay)
86
- startStr = internal_cjs.addDays(range.start, -1).toISOString();
87
- endStr = internal_cjs.addDays(range.end, 1).toISOString();
82
+ startStr = addDays(range.start, -1).toISOString();
83
+ endStr = addDays(range.end, 1).toISOString();
88
84
  }
89
85
  params = Object.assign(Object.assign({}, (extraParams || {})), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });
90
86
  if (dateEnv.timeZone !== 'local') {
@@ -128,14 +124,14 @@ const EVENT_SOURCE_REFINERS = {
128
124
  googleCalendarApiKey: String,
129
125
  googleCalendarId: String,
130
126
  googleCalendarApiBase: String,
131
- extraParams: internal_cjs.identity,
127
+ extraParams: identity,
132
128
  };
133
129
 
134
- var index = index_cjs.createPlugin({
130
+ var index = createPlugin({
135
131
  name: '@fullcalendar/google-calendar',
136
132
  eventSourceDefs: [eventSourceDef],
137
133
  optionRefiners: OPTION_REFINERS,
138
134
  eventSourceRefiners: EVENT_SOURCE_REFINERS,
139
135
  });
140
136
 
141
- exports["default"] = index;
137
+ export { index as default };
package/index.global.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Google Calendar Plugin v6.0.2
2
+ FullCalendar Google Calendar Plugin v6.0.3
3
3
  Docs & License: https://fullcalendar.io/docs/google-calendar
4
4
  (c) 2022 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Google Calendar Plugin v6.0.2
2
+ FullCalendar Google Calendar Plugin v6.0.3
3
3
  Docs & License: https://fullcalendar.io/docs/google-calendar
4
4
  (c) 2022 Adam Shaw
5
5
  */
package/index.js CHANGED
@@ -1,5 +1,9 @@
1
- import { JsonRequestError, createPlugin } from '@fullcalendar/core/index.js';
2
- import { requestJson, addDays, identity } from '@fullcalendar/core/internal.js';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@fullcalendar/core');
6
+ var internal = require('@fullcalendar/core/internal');
3
7
 
4
8
  // TODO: expose somehow
5
9
  const API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';
@@ -32,9 +36,9 @@ const eventSourceDef = {
32
36
  let { extraParams } = meta;
33
37
  let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams;
34
38
  let requestParams = buildRequestParams(arg.range, apiKey, extraParamsObj, dateEnv);
35
- return requestJson('GET', url, requestParams).then(([body, response]) => {
39
+ return internal.requestJson('GET', url, requestParams).then(([body, response]) => {
36
40
  if (body.error) {
37
- errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response));
41
+ errorCallback(new core.JsonRequestError('Google Calendar API: ' + body.error.message, response));
38
42
  }
39
43
  else {
40
44
  successCallback({
@@ -79,8 +83,8 @@ function buildRequestParams(range, apiKey, extraParams, dateEnv) {
79
83
  // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day
80
84
  // from the UTC day-start to guarantee we're getting all the events
81
85
  // (start/end will be UTC-coerced dates, so toISOString is okay)
82
- startStr = addDays(range.start, -1).toISOString();
83
- endStr = addDays(range.end, 1).toISOString();
86
+ startStr = internal.addDays(range.start, -1).toISOString();
87
+ endStr = internal.addDays(range.end, 1).toISOString();
84
88
  }
85
89
  params = Object.assign(Object.assign({}, (extraParams || {})), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });
86
90
  if (dateEnv.timeZone !== 'local') {
@@ -124,15 +128,14 @@ const EVENT_SOURCE_REFINERS = {
124
128
  googleCalendarApiKey: String,
125
129
  googleCalendarId: String,
126
130
  googleCalendarApiBase: String,
127
- extraParams: identity,
131
+ extraParams: internal.identity,
128
132
  };
129
133
 
130
- var index = createPlugin({
134
+ var index = core.createPlugin({
131
135
  name: '@fullcalendar/google-calendar',
132
136
  eventSourceDefs: [eventSourceDef],
133
137
  optionRefiners: OPTION_REFINERS,
134
138
  eventSourceRefiners: EVENT_SOURCE_REFINERS,
135
139
  });
136
140
 
137
- export { index as default };
138
- //# sourceMappingURL=index.js.map
141
+ exports["default"] = index;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullcalendar/google-calendar",
3
- "version": "6.0.2",
3
+ "version": "6.0.3",
4
4
  "title": "FullCalendar Google Calendar Plugin",
5
5
  "description": "Display events from a public Google Calendar feed",
6
6
  "homepage": "https://fullcalendar.io/docs/google-calendar",
@@ -12,7 +12,7 @@
12
12
  "google-calendar"
13
13
  ],
14
14
  "peerDependencies": {
15
- "@fullcalendar/core": "~6.0.2"
15
+ "@fullcalendar/core": "~6.0.3"
16
16
  },
17
17
  "type": "module",
18
18
  "bugs": "https://fullcalendar.io/reporting-bugs",
@@ -28,19 +28,17 @@
28
28
  "url": "http://arshaw.com/"
29
29
  },
30
30
  "copyright": "2022 Adam Shaw",
31
- "main": "./index.cjs",
32
- "module": "./index.js",
33
31
  "types": "./index.d.ts",
32
+ "main": "./index.js",
33
+ "module": "./index.esm.js",
34
34
  "unpkg": "./index.global.min.js",
35
35
  "jsdelivr": "./index.global.min.js",
36
36
  "exports": {
37
37
  "./package.json": "./package.json",
38
- "./index.cjs": "./index.cjs",
39
- "./index.js": "./index.js",
40
38
  ".": {
41
39
  "types": "./index.d.ts",
42
- "require": "./index.cjs",
43
- "import": "./index.js"
40
+ "require": "./index.js",
41
+ "import": "./index.esm.js"
44
42
  }
45
43
  },
46
44
  "sideEffects": false
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/event-source-def.ts","../src/options-refiners.ts","../src/event-source-refiners.ts","../src/index.ts"],"sourcesContent":["import { JsonRequestError } from '@fullcalendar/core'\nimport { EventSourceDef, addDays, DateEnv, requestJson, Dictionary } from '@fullcalendar/core/internal'\n\n// TODO: expose somehow\nconst API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'\n\ninterface GCalMeta {\n googleCalendarId: string\n googleCalendarApiKey?: string\n googleCalendarApiBase?: string,\n extraParams?: Dictionary | (() => Dictionary)\n}\n\nexport const eventSourceDef: EventSourceDef<GCalMeta> = {\n\n parseMeta(refined): GCalMeta | null {\n let { googleCalendarId } = refined\n\n if (!googleCalendarId && refined.url) {\n googleCalendarId = parseGoogleCalendarId(refined.url)\n }\n\n if (googleCalendarId) {\n return {\n googleCalendarId,\n googleCalendarApiKey: refined.googleCalendarApiKey,\n googleCalendarApiBase: refined.googleCalendarApiBase,\n extraParams: refined.extraParams,\n }\n }\n\n return null\n },\n\n fetch(arg, successCallback, errorCallback) {\n let { dateEnv, options } = arg.context\n let meta: GCalMeta = arg.eventSource.meta\n let apiKey = meta.googleCalendarApiKey || options.googleCalendarApiKey\n\n if (!apiKey) {\n errorCallback(\n new Error('Specify a googleCalendarApiKey. See https://fullcalendar.io/docs/google-calendar'),\n )\n } else {\n let url = buildUrl(meta)\n\n // TODO: make DRY with json-feed-event-source\n let { extraParams } = meta\n let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams\n\n let requestParams = buildRequestParams(\n arg.range,\n apiKey,\n extraParamsObj,\n dateEnv,\n )\n\n return requestJson(\n 'GET',\n url,\n requestParams,\n ).then(\n ([body, response]: [any, Response]) => {\n if (body.error) {\n errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response))\n } else {\n successCallback({\n rawEvents: gcalItemsToRawEventDefs(\n body.items,\n requestParams.timeZone,\n ),\n response,\n })\n }\n },\n errorCallback,\n )\n }\n },\n}\n\nfunction parseGoogleCalendarId(url) {\n let match\n\n // detect if the ID was specified as a single string.\n // will match calendars like \"asdf1234@calendar.google.com\" in addition to person email calendars.\n if (/^[^/]+@([^/.]+\\.)*(google|googlemail|gmail)\\.com$/.test(url)) {\n return url\n }\n\n if (\n (match = /^https:\\/\\/www.googleapis.com\\/calendar\\/v3\\/calendars\\/([^/]*)/.exec(url)) ||\n (match = /^https?:\\/\\/www.google.com\\/calendar\\/feeds\\/([^/]*)/.exec(url))\n ) {\n return decodeURIComponent(match[1])\n }\n\n return null\n}\n\nfunction buildUrl(meta) {\n let apiBase = meta.googleCalendarApiBase\n if (!apiBase) {\n apiBase = API_BASE\n }\n return apiBase + '/' + encodeURIComponent(meta.googleCalendarId) + '/events'\n}\n\nfunction buildRequestParams(range, apiKey: string, extraParams: Dictionary, dateEnv: DateEnv) {\n let params\n let startStr\n let endStr\n\n if (dateEnv.canComputeOffset) {\n // strings will naturally have offsets, which GCal needs\n startStr = dateEnv.formatIso(range.start)\n endStr = dateEnv.formatIso(range.end)\n } else {\n // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day\n // from the UTC day-start to guarantee we're getting all the events\n // (start/end will be UTC-coerced dates, so toISOString is okay)\n startStr = addDays(range.start, -1).toISOString()\n endStr = addDays(range.end, 1).toISOString()\n }\n\n params = {\n ...(extraParams || {}),\n key: apiKey,\n timeMin: startStr,\n timeMax: endStr,\n singleEvents: true,\n maxResults: 9999,\n }\n\n if (dateEnv.timeZone !== 'local') {\n params.timeZone = dateEnv.timeZone\n }\n\n return params\n}\n\nfunction gcalItemsToRawEventDefs(items, gcalTimezone) {\n return items.map((item) => gcalItemToRawEventDef(item, gcalTimezone))\n}\n\nfunction gcalItemToRawEventDef(item, gcalTimezone) {\n let url = item.htmlLink || null\n\n // make the URLs for each event show times in the correct timezone\n if (url && gcalTimezone) {\n url = injectQsComponent(url, 'ctz=' + gcalTimezone)\n }\n\n return {\n id: item.id,\n title: item.summary,\n start: item.start.dateTime || item.start.date, // try timed. will fall back to all-day\n end: item.end.dateTime || item.end.date, // same\n url,\n location: item.location,\n description: item.description,\n attachments: item.attachments || [],\n extendedProps: (item.extendedProperties || {}).shared || {},\n }\n}\n\n// Injects a string like \"arg=value\" into the querystring of a URL\n// TODO: move to a general util file?\nfunction injectQsComponent(url, component) {\n // inject it after the querystring but before the fragment\n return url.replace(\n /(\\?.*?)?(#|$)/,\n (whole, qs, hash) => (qs ? qs + '&' : '?') + component + hash,\n )\n}\n","\nexport const OPTION_REFINERS = {\n googleCalendarApiKey: String,\n}\n","import { identity, Identity, Dictionary } from '@fullcalendar/core/internal'\n\nexport const EVENT_SOURCE_REFINERS = {\n googleCalendarApiKey: String, // TODO: rename with no prefix?\n googleCalendarId: String,\n googleCalendarApiBase: String,\n extraParams: identity as Identity<Dictionary | (() => Dictionary)>,\n}\n","import { createPlugin, PluginDef } from '@fullcalendar/core'\nimport { eventSourceDef } from './event-source-def.js'\nimport { OPTION_REFINERS } from './options-refiners.js'\nimport { EVENT_SOURCE_REFINERS } from './event-source-refiners.js'\nimport './ambient.js'\n\nexport default createPlugin({\n name: '<%= pkgName %>',\n eventSourceDefs: [eventSourceDef],\n optionRefiners: OPTION_REFINERS,\n eventSourceRefiners: EVENT_SOURCE_REFINERS,\n}) as PluginDef\n"],"names":[],"mappings":"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"}