@lindle/sharepoint_requests 0.1.15 → 0.1.16
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 +4 -0
- package/dist/root/index.d.ts +2 -1
- package/dist/root/internal/listRequests/deleteFile.d.ts +3 -0
- package/dist/root/internal/listRequests/index.d.ts +1 -0
- package/dist/root/internal/listRequests/utils.d.ts +2 -0
- package/dist/sharepoint_requests.cjs.development.js +74 -21
- package/dist/sharepoint_requests.cjs.development.js.map +1 -1
- package/dist/sharepoint_requests.cjs.production.min.js +1 -1
- package/dist/sharepoint_requests.cjs.production.min.js.map +1 -1
- package/dist/sharepoint_requests.esm.js +74 -21
- package/dist/sharepoint_requests.esm.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
- package/src/root/index.ts +4 -0
- package/src/root/internal/listRequests/deleteFile.ts +35 -0
- package/src/root/internal/listRequests/index.ts +1 -0
- package/src/root/internal/listRequests/uploadFile.ts +3 -27
- package/src/root/internal/listRequests/utils.ts +33 -0
- package/src/types.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharepoint_requests.cjs.production.min.js","sources":["../src/root/instance.ts","../src/root/internal/digest.ts","../src/root/internal/listRequests/createListItem.ts","../src/root/internal/listRequests/createAttachment.ts","../src/root/internal/listRequests/deleteItem.ts","../src/root/internal/odata.ts","../src/root/internal/listRequests/getFiles.ts","../src/root/internal/listRequests/getListItems.ts","../src/root/internal/listRequests/getOnly.ts","../src/root/internal/listRequests/updateListItem.ts","../src/root/internal/listRequests/uploadFile.ts","../src/root/internal/emailRequests.ts","../src/root/internal/userRequests.ts","../src/root/index.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosHeaders, CreateAxiosDefaults as AxiosConfig } from 'axios';\n\nconst defaultConfig: AxiosConfig = {\n headers: {\n Accept: 'application/json; odata=verbose',\n 'Content-Type': 'application/json; odata=verbose',\n },\n timeout: 15000,\n withCredentials: true,\n};\n\nexport const instance = (baseURL: string, config?: AxiosConfig) => {\n const userHeaders =\n config?.headers instanceof AxiosHeaders\n ? config.headers.toJSON()\n : config?.headers ?? {};\n\n return axios.create({\n ...defaultConfig,\n ...config,\n baseURL,\n headers: {\n ...defaultConfig.headers,\n ...userHeaders,\n },\n });\n};\n\nexport default instance;\n","import type { AxiosInstance } from 'axios';\n\nexport async function fetchDigest(\n instance: AxiosInstance,\n baseURL: string\n): Promise<string> {\n try {\n const response = await instance.post(`${baseURL}_api/contextinfo`);\n\n const formDigestValue =\n response.data?.d?.GetContextWebInformation?.FormDigestValue;\n\n if (!formDigestValue) {\n throw new Error('Invalid response structure: Missing FormDigestValue');\n }\n\n return formDigestValue;\n } catch (error) {\n console.error('Failed to retrieve the Form Digest Value:', error);\n throw new Error(`Error retrieving Form Digest Value`);\n }\n}\n","import type { ListData, SHAREPOINT_VER } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nasync function resolveMetadataType<V extends SHAREPOINT_VER>(\n context: RequestContext<V>\n) {\n if (context.resolveListItemEntityType) {\n return context.resolveListItemEntityType();\n }\n\n if (context.listItemEntityTypeFullName) {\n return context.listItemEntityTypeFullName;\n }\n\n return `SP.Data.${context.listName}ListItem`;\n}\n\nexport async function createListItem<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n listData: ListData\n) {\n const metadataType = await resolveMetadataType(context);\n const payload = {\n ...listData,\n __metadata: {\n type: metadataType,\n },\n };\n\n const response = await context.instance({\n url: context.endpoint,\n method: 'POST',\n data: JSON.stringify(payload),\n headers: {\n 'X-RequestDigest': await fetchDigest(context.instance, context.baseURL),\n },\n });\n\n return response;\n}\n","import type { CreateFileProps, SHAREPOINT_VER } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nexport async function createAttachment<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n { file, itemId }: CreateFileProps\n) {\n const requestUrl = `_api/lists/getbytitle('${context.listName}')/items(${itemId})/AttachmentFiles/add(FileName='${file.name}')`;\n const response = await context.instance.post(requestUrl, file, {\n headers: {\n 'X-RequestDigest': await fetchDigest(context.instance, context.baseURL),\n },\n withCredentials: true,\n });\n\n return response;\n}\n","import type { SHAREPOINT_VER } from '../../../types';\nimport type { RequestContext } from '../context';\n\nexport async function deleteItem<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n id: number | string\n) {\n const response = await context.instance.delete(`${context.endpoint}(${id})`);\n return response;\n}\n","import type { Folder_Options, Options, SHAREPOINT_VER } from '../../types';\n\ntype QueryableOptions<T, V extends SHAREPOINT_VER = '2013'> =\n | Options<T, V>\n | Folder_Options<T>;\n\nexport function buildODataParams<T, V extends SHAREPOINT_VER = '2013'>(\n options: QueryableOptions<T, V> | undefined,\n orderBySeparator: ',' | ' ' = ','\n) {\n const { expand, orderBy, limit, filter, cols, skip } = options || {};\n\n const params: Record<string, string | number | undefined> = {\n $expand: Array.isArray(expand) ? expand.join(',') : expand,\n $top: limit,\n $skip: skip,\n $select: Array.isArray(cols) ? cols.join(',') : cols,\n $filter: filter,\n $orderby: Array.isArray(orderBy)\n ? orderBy.join(orderBySeparator)\n : orderBy,\n };\n\n return params;\n}\n\nexport function appendParamsToUrl(\n baseUrl: URL,\n params: Record<string, string | number | undefined | null>\n) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n baseUrl.searchParams.append(key, String(value));\n }\n });\n}\n","import type { Folder_Options, SHAREPOINT_VER } from '../../../types';\nimport { appendParamsToUrl, buildODataParams } from '../odata';\nimport type { RequestContext } from '../context';\n\nexport async function getFiles<\n T,\n V extends SHAREPOINT_VER = '2013'\n>(\n context: RequestContext<V>,\n options?: Folder_Options<T>\n) {\n const params = buildODataParams(options, ',');\n const url = new URL(context.endpoint, context.instance.defaults.baseURL);\n\n appendParamsToUrl(url, params);\n\n const response = await context.instance.request({\n url: context.endpoint,\n method: 'GET',\n params,\n });\n\n const data =\n options?.limit || !response.data.d.results\n ? response.data.d\n : response.data.d.results;\n\n const meta = { url };\n\n return { data, meta };\n}\n","import type { Options, SPItem, SHAREPOINT_VER } from '../../../types';\nimport { appendParamsToUrl, buildODataParams } from '../odata';\nimport type { RequestContext } from '../context';\n\nexport async function getListItems<\n K,\n V extends SHAREPOINT_VER = '2013'\n>(\n context: RequestContext<V>,\n options?: Options<K, V>\n): Promise<{ data: (K & Partial<SPItem<V>>)[]; meta: { url: URL } }> {\n const params = buildODataParams(options, ' ');\n\n const url = new URL(context.endpoint, context.instance.defaults.baseURL);\n appendParamsToUrl(url, params);\n\n const response = await context.instance.request({\n url: context.endpoint,\n method: 'GET',\n params,\n });\n\n const rawData = response.data?.d?.results ?? response.data?.d ?? response.data;\n const cols = options?.cols;\n const keys = cols\n ? (Array.isArray(cols) ? cols : [cols]).filter(Boolean)\n : undefined;\n\n const filterItem = (item: unknown) => {\n if (!keys || !item || typeof item !== 'object') {\n return item;\n }\n\n return keys.reduce<Record<string, unknown>>((acc, key) => {\n if (key in item) {\n acc[key] = (item as Record<string, unknown>)[key];\n }\n\n return acc;\n }, {});\n };\n\n const data = Array.isArray(rawData)\n ? rawData.map(filterItem)\n : filterItem(rawData);\n\n const meta = { url };\n\n return { data: data as (K & Partial<SPItem<V>>)[], meta };\n}\n","import type { AxiosInstance } from 'axios';\nimport type { Options, SHAREPOINT_VER } from '../../../types';\nimport { buildODataParams } from '../odata';\n\nexport async function getOnly<\n T,\n V extends SHAREPOINT_VER = '2013'\n>(\n instance: AxiosInstance,\n endpoint: string,\n options?: Options<T, V>\n) {\n const params = buildODataParams(options, ',');\n const { data } = await instance.get(endpoint, { params });\n if (data) {\n return data.d.results ? data.d.results : data.d;\n }\n}\n","import type { ListData, SHAREPOINT_VER } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nasync function resolveMetadataType<V extends SHAREPOINT_VER>(\n context: RequestContext<V>\n) {\n if (context.resolveListItemEntityType) {\n return context.resolveListItemEntityType();\n }\n\n if (context.listItemEntityTypeFullName) {\n return context.listItemEntityTypeFullName;\n }\n\n return `SP.Data.${context.listName}ListItem`;\n}\n\nexport async function updateListItem<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n id: number | string,\n data: ListData,\n digest?: string\n) {\n const formDigestValue =\n digest || (await fetchDigest(context.instance, context.baseURL));\n\n const metadataType = await resolveMetadataType(context);\n const payload = {\n ...data,\n __metadata: {\n type: metadataType,\n },\n };\n\n const url = `_api/lists/getbytitle('${context.listName}')/getItemById('${id}')`;\n\n const response = await context.instance({\n url,\n method: 'POST',\n data: JSON.stringify(payload),\n headers: {\n 'X-RequestDigest': formDigestValue,\n 'IF-MATCH': '*',\n 'X-Http-Method': 'PATCH',\n },\n });\n\n return response;\n}\n","import type { SHAREPOINT_VER, UploadFileProps } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nconst SUPPORTED_VERSION: SHAREPOINT_VER = '2013';\n\nfunction normalizeFolderPath(folderPath: string | string[]) {\n const segments = Array.isArray(folderPath)\n ? folderPath\n : folderPath.split('/').filter(Boolean);\n\n if (!segments.length) {\n return '';\n }\n\n const escapedSegments = segments.map((segment) => {\n if (!segment.trim()) {\n throw new Error('Folder path segments cannot be empty.');\n }\n\n // SharePoint expects single quotes to be doubled in OData paths.\n const sanitized = segment.replace(/'/g, \"''\");\n\n return `/Folders('${encodeURIComponent(sanitized)}')`;\n });\n\n return escapedSegments.join('');\n}\n\nexport async function uploadFile<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n { file, folderPath, overwrite = true }: UploadFileProps\n) {\n if (context.sharepointVersion !== SUPPORTED_VERSION) {\n throw new Error(\n 'uploadFile is only supported for SharePoint 2013 REST endpoints.'\n );\n }\n\n if (!file?.name) {\n throw new Error('A file with a valid name must be provided.');\n }\n\n let requestUrl = `_api/web/lists/getbytitle('${context.listName}')/RootFolder`;\n\n if (folderPath) {\n requestUrl += normalizeFolderPath(folderPath);\n }\n\n const encodedFileName = encodeURIComponent(file.name.replace(/'/g, \"''\"));\n requestUrl += `/Files/add(url='${encodedFileName}',overwrite=${\n overwrite ? 'true' : 'false'\n })`;\n\n const digest = await fetchDigest(context.instance, context.baseURL);\n\n const response = await context.instance.post(requestUrl, file, {\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n 'X-RequestDigest': digest,\n },\n withCredentials: true,\n });\n\n return response;\n}\n","import type { AxiosResponse } from 'axios';\nimport type { EmailProps } from '../../types';\nimport { fetchDigest } from './digest';\nimport type { RequestContext } from './context';\n\ntype SendEmailResponse = AxiosResponse<{\n d: {\n SendEmail: null;\n };\n}>;\n\nexport async function sendEmail(\n context: RequestContext,\n { From, To, Subject, Body }: EmailProps\n): Promise<SendEmailResponse> {\n const httpRequest = '_api/SP.Utilities.Utility.SendEmail';\n\n const response = await context.instance({\n url: httpRequest,\n method: 'POST',\n headers: {\n 'X-RequestDigest': await fetchDigest(\n context.instance,\n context.baseURL\n ),\n 'X-Http-Method': 'POST',\n 'Content-Type': 'application/json;odata=verbose',\n },\n data: JSON.stringify({\n properties: {\n __metadata: {\n type: 'SP.Utilities.EmailProperties',\n },\n From,\n To: {\n results: Array.isArray(To) ? To : [To],\n },\n Body,\n Subject,\n },\n }),\n });\n\n return response;\n}\n","import type { AxiosInstance } from 'axios';\nimport type {\n PersonField,\n UserPermision,\n UserProfile,\n} from '../../types';\nimport type { RequestContext } from './context';\n\ntype RoleDefinition = {\n BasePermissions: {\n High: string;\n };\n};\n\nexport async function typeAhead(\n instance: AxiosInstance,\n input: string,\n filter?: string\n): Promise<PersonField> {\n const requestUrl = `_api/SP.UI.ApplicationPages.ClientPeoplePickerWebServiceInterface.clientPeoplePickerSearchUser`;\n\n const data = {\n queryParams: {\n __metadata: {\n type: 'SP.UI.ApplicationPages.ClientPeoplePickerQueryParameters',\n },\n AllowEmailAddresses: true,\n AllowMultipleEntities: false,\n AllUrlZones: false,\n MaximumEntitySuggestions: 10,\n PrincipalSource: 15,\n PrincipalType: 1,\n QueryString: input,\n },\n };\n\n if (filter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data.queryParams as any).RequiredProperties = [filter];\n }\n\n const response = await instance.post(requestUrl, JSON.stringify(data), {\n headers: {\n Accept: 'application/json; odata=verbose',\n 'Content-Type': 'application/json;odata=verbose',\n },\n });\n\n return response.data.d.ClientPeoplePickerSearchUser;\n}\n\nexport async function currentUserProperties(\n instance: AxiosInstance\n): Promise<UserProfile> {\n const requestUrl = '_api/sp.userprofiles.peoplemanager/getmyproperties';\n let profile: any = await instance.get(requestUrl);\n\n profile = profile.data.d;\n\n profile.UserProfileProperties.results.forEach(\n (prop: { Key: string; Value: string }) => {\n if (prop.Key === 'FirstName') {\n profile.FirstName = prop.Value;\n }\n if (prop.Key === 'LastName') {\n profile.LastName = prop.Value;\n }\n if (prop.Key === 'Country') {\n profile.Country = prop.Value;\n }\n if (prop.Key === 'UserName') {\n profile.UserName = prop.Value;\n }\n }\n );\n\n return profile;\n}\n\nexport async function getSiteUser(instance: AxiosInstance, searchValue: string) {\n const requestUrl = `_api/web/siteusers?&$filter=substringof('${searchValue}', Title) or substringof('${searchValue}', LoginName) or substringof('${searchValue}', Email)&$top=50&$expand=Groups`;\n const response = await instance.get(requestUrl);\n return response.data.d;\n}\n\nexport async function roleDefinitions(instance: AxiosInstance) {\n const requestUrl = `_api/Web/RoleDefinitions`;\n const response = await instance.get(requestUrl);\n return response.data.d.results as RoleDefinition[];\n}\n\nexport async function getEffectiveBasePermissions(instance: AxiosInstance) {\n const requestUrl = `_api/Web/effectiveBasePermissions`;\n const response = await instance.get(requestUrl);\n return response.data.d.EffectiveBasePermissions;\n}\n\nexport async function currentUserPermissions(\n context: RequestContext\n): Promise<UserPermision> {\n const { High } = await getEffectiveBasePermissions(context.instance);\n const definitions = await roleDefinitions(context.instance);\n\n const result = definitions.find(\n ({ BasePermissions }: RoleDefinition) => BasePermissions.High === High\n );\n\n return result as UserPermision;\n}\n","import { AxiosInstance, CreateAxiosDefaults as AxiosConfig } from 'axios';\nimport instance from './instance';\nimport {\n CreateFileProps,\n CurrentUser,\n EmailProps,\n Field_Options,\n Folder_Options,\n UploadFileProps,\n IListName,\n ItemID,\n ListData,\n Options,\n PersonField,\n SHAREPOINT_VER,\n UserPermision,\n UserProfile,\n} from '../types';\nimport { RequestContext } from './internal/context';\nimport {\n createAttachment,\n createListItem,\n deleteItem,\n getFiles,\n getListItems,\n getOnly,\n updateListItem,\n uploadFile,\n} from './internal/listRequests';\nimport { sendEmail as sendEmailRequest } from './internal/emailRequests';\nimport {\n currentUserPermissions as resolveCurrentUserPermissions,\n currentUserProperties as loadCurrentUserProperties,\n getSiteUser as fetchSiteUser,\n typeAhead,\n} from './internal/userRequests';\nimport { fetchDigest } from './internal/digest';\n\nclass HTTPSharePointRequests<\n T extends {\n LISTS: Record<string, unknown>;\n FOLDERS?: Record<string, unknown>;\n }\n> {\n private baseURL: string;\n private endpoint: string;\n private listName: string;\n private instance: AxiosInstance;\n private sharepointVersion: SHAREPOINT_VER;\n private listItemEntityTypeFullName?: string;\n\n constructor(baseURL: string, config?: AxiosConfig) {\n this.baseURL = baseURL.endsWith('/') ? baseURL : `${baseURL}/`;\n this.endpoint = '/api';\n this.listName = '';\n this.instance = instance(this.baseURL, config);\n this.sharepointVersion = '2013';\n this.listItemEntityTypeFullName = undefined;\n }\n\n private getContext<V extends SHAREPOINT_VER = '2013'>(): RequestContext<V> {\n return {\n instance: this.instance,\n baseURL: this.baseURL,\n endpoint: this.endpoint,\n listName: this.listName,\n sharepointVersion: this.sharepointVersion as V,\n listItemEntityTypeFullName: this.listItemEntityTypeFullName,\n resolveListItemEntityType: this.resolveListItemEntityTypeFullName.bind(\n this\n ),\n };\n }\n\n private async resolveListItemEntityTypeFullName(): Promise<string> {\n if (this.listItemEntityTypeFullName) {\n return this.listItemEntityTypeFullName;\n }\n\n if (!this.listName) {\n throw new Error('List name is not set.');\n }\n\n if (this.sharepointVersion !== '2013') {\n this.listItemEntityTypeFullName = `SP.Data.${this.listName}ListItem`;\n return this.listItemEntityTypeFullName;\n }\n\n const response = await this.instance.get(\n `_api/web/lists/GetByTitle('${this.listName}')?$select=ListItemEntityTypeFullName`\n );\n\n const entityType =\n response.data?.d?.ListItemEntityTypeFullName ??\n response.data?.ListItemEntityTypeFullName;\n\n if (!entityType || typeof entityType !== 'string') {\n throw new Error(\n `Unable to resolve ListItemEntityTypeFullName for list \"${this.listName}\".`\n );\n }\n\n this.listItemEntityTypeFullName = entityType;\n return this.listItemEntityTypeFullName;\n }\n\n /**\n * @deprecated Use `from` instead.\n */\n list(listName: IListName<T>) {\n this.listName = listName;\n this.endpoint = `_vti_bin/ListData.svc/${listName}`;\n this.sharepointVersion = '2010';\n this.listItemEntityTypeFullName = undefined;\n return this;\n }\n\n public readonly lists = {\n get: () => {\n this.endpoint = '_api/web/lists';\n this.sharepointVersion = '2013';\n return getListItems(this.getContext());\n },\n };\n\n public getDigest() {\n return fetchDigest(this.instance, this.baseURL);\n }\n\n public from<\n K extends Extract<keyof T['LISTS'], string>,\n V extends SHAREPOINT_VER = '2013'\n >(listName: K, sharepoint_ver?: V) {\n const version = (sharepoint_ver ?? '2013') as V;\n\n this.listName = listName;\n this.sharepointVersion = version;\n this.listItemEntityTypeFullName = undefined;\n this.endpoint =\n version === '2013'\n ? `_api/web/lists/GetByTitle('${this.listName}')/items`\n : `_vti_bin/ListData.svc/${listName}`;\n\n const getContext = () => this.getContext<V>();\n\n return {\n create: (data: ListData) => createListItem(getContext(), data),\n get: (options?: Options<T['LISTS'][K], V>) =>\n getListItems<T['LISTS'][K], V>(getContext(), options),\n update: (id: ItemID, data: ListData, digest?: string) =>\n updateListItem(getContext(), id, data, digest),\n delete: (id: ItemID) => deleteItem(getContext(), id),\n createFile: (props: CreateFileProps) =>\n createAttachment(getContext(), props),\n uploadFile: (props: UploadFileProps) => uploadFile(getContext(), props),\n fields: (options?: Field_Options<T['LISTS'][K], V>) => {\n this.endpoint = !options?.fieldName\n ? `_api/web/lists/GetByTitle('${this.listName}')/fields`\n : `_api/web/lists/GetByTitle('${this.listName}')/fields/getbytitle('${options.fieldName}')`;\n return {\n get: () =>\n getOnly<T['LISTS'][K], V>(this.instance, this.endpoint, options),\n };\n },\n };\n }\n\n public folders = {\n get: () => {\n this.endpoint = '_api/web/folders';\n this.sharepointVersion = '2013';\n getListItems(this.getContext());\n },\n };\n\n public folder(folderName?: string | string[]) {\n let filePath = ['Shared Documents'];\n\n if (folderName) {\n filePath = Array.isArray(folderName)\n ? [...filePath, ...folderName]\n : [...filePath, folderName];\n }\n\n this.endpoint = `_api/web/GetFolderByServerRelativeUrl('${filePath.join(\n '/'\n )}')`;\n this.sharepointVersion = '2013';\n\n const getContext = () => this.getContext();\n\n return {\n get: (options?: Folder_Options<any>) => {\n if (!options?.type) {\n this.endpoint += '/Files';\n } else {\n this.endpoint += `/${options.type}`;\n }\n return getFiles(getContext(), options);\n },\n };\n }\n\n public users(options?: Options<any>) {\n this.endpoint = '_api/web/SiteUserInfoList/items';\n this.sharepointVersion = '2013';\n return {\n get: () => getListItems(this.getContext(), options),\n };\n }\n\n public email = {\n send: (props: EmailProps) => {\n this.sharepointVersion = '2013';\n return sendEmailRequest(this.getContext(), props);\n },\n };\n\n public user = {\n properties: () => ({\n get: (): Promise<UserProfile> => {\n this.sharepointVersion = '2013';\n return loadCurrentUserProperties(this.instance);\n },\n }),\n searchSiteUser: (searchValue: string) => {\n this.sharepointVersion = '2013';\n return fetchSiteUser(this.instance, searchValue);\n },\n searchUser: (input: string, filter?: string): Promise<PersonField> => {\n this.sharepointVersion = '2013';\n return typeAhead(this.instance, input, filter);\n },\n current: () => {\n this.endpoint = '_api/web/currentUser';\n this.sharepointVersion = '2013';\n return {\n get: (): Promise<CurrentUser> => getOnly(this.instance, this.endpoint),\n };\n },\n currentPermission: () => ({\n get: (): Promise<UserPermision> => {\n this.sharepointVersion = '2013';\n return resolveCurrentUserPermissions(this.getContext());\n },\n }),\n };\n}\n\nexport default HTTPSharePointRequests;\n","import SHAREPOINT_REQUESTS from './root';\n\nimport type { CreateAxiosDefaults as AxiosConfig } from 'axios';\nimport type { LookupField, ChoiceField, PersonField } from './types';\n\n// Load environment variables from .env file\n\nexport default function createBase<\n T extends { LISTS: Record<string, any>; FOLDERS?: Record<string, any> } = any\n>(){\n function create({\n baseURL,\n config,\n }: {\n baseURL: string;\n config?: AxiosConfig;\n }) {\n if (!baseURL) {\n throw new Error('A valid SharePoint URL must be provided.');\n }\n return new SHAREPOINT_REQUESTS<T>(baseURL, config);\n }\n\n return {\n /**\n * @deprecated Use `create` instead.\n */\n baseURL(url: string, config?: AxiosConfig) {\n return create({ baseURL: url, config });\n },\n create,\n };\n}\n\nexport { LookupField, ChoiceField, PersonField };\n\n\n"],"names":["defaultConfig","headers","Accept","Content-Type","timeout","withCredentials","fetchDigest","_x","_x2","_fetchDigest","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","instance","baseURL","_response$data","formDigestValue","w","_context","p","n","post","v","data","d","GetContextWebInformation","FormDigestValue","Error","a","console","error","resolveMetadataType","_resolveMetadataType","context","resolveListItemEntityType","listItemEntityTypeFullName","listName","_createListItem","_callee2","listData","payload","_t","_t2","_t3","_t5","_context2","_extends","__metadata","type","endpoint","JSON","stringify","X-RequestDigest","call","url","method","_createAttachment","_ref","file","itemId","name","_deleteItem","id","buildODataParams","options","orderBySeparator","expand","orderBy","limit","filter","cols","skip","$expand","Array","isArray","join","$top","$skip","$select","$filter","$orderby","appendParamsToUrl","baseUrl","params","Object","entries","forEach","_ref2","value","searchParams","append","String","_getFiles","response","URL","defaults","request","results","meta","getListItems","_getListItems","_response$data$d$resu","_response$data2","rawData","keys","filterItem","Boolean","undefined","item","reduce","acc","key","map","getOnly","_x3","_getOnly","get","_updateListItem","digest","IF-MATCH","X-Http-Method","normalizeFolderPath","folderPath","segments","split","length","segment","trim","sanitized","replace","encodeURIComponent","_uploadFile","_ref$overwrite","overwrite","requestUrl","encodedFileName","sharepointVersion","_sendEmail","From","To","Subject","Body","_t4","properties","_typeAhead","input","queryParams","AllowEmailAddresses","AllowMultipleEntities","AllUrlZones","MaximumEntitySuggestions","PrincipalSource","PrincipalType","QueryString","RequiredProperties","ClientPeoplePickerSearchUser","_currentUserProperties","profile","UserProfileProperties","prop","Key","FirstName","Value","LastName","Country","UserName","_getSiteUser","_callee3","searchValue","_context3","roleDefinitions","_x7","_roleDefinitions","_callee4","_context4","getEffectiveBasePermissions","_x8","_getEffectiveBasePermissions","_callee5","_context5","EffectiveBasePermissions","_currentUserPermissions","_callee6","High","result","_context6","find","BasePermissions","HTTPSharePointRequests","config","this","lists","_this","getContext","folders","email","send","props","sendEmailRequest","user","_x4","loadCurrentUserProperties","searchSiteUser","_x5","_x6","fetchSiteUser","searchUser","typeAhead","current","currentPermission","_x9","resolveCurrentUserPermissions","endsWith","userHeaders","AxiosHeaders","toJSON","_config$headers","axios","create","_proto","prototype","resolveListItemEntityTypeFullName","bind","_resolveListItemEntityTypeFullName","_response$data$d$List","entityType","ListItemEntityTypeFullName","list","getDigest","from","sharepoint_ver","version","_this2","createListItem","update","updateListItem","delete","deleteItem","createFile","createAttachment","uploadFile","fields","fieldName","folder","folderName","filePath","concat","_this3","getFiles","users","_this4","SHAREPOINT_REQUESTS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sharepoint_requests.cjs.production.min.js","sources":["../src/root/instance.ts","../src/root/internal/digest.ts","../src/root/internal/listRequests/createListItem.ts","../src/root/internal/listRequests/createAttachment.ts","../src/root/internal/listRequests/deleteItem.ts","../src/root/internal/listRequests/utils.ts","../src/root/internal/listRequests/deleteFile.ts","../src/root/internal/odata.ts","../src/root/internal/listRequests/getFiles.ts","../src/root/internal/listRequests/getListItems.ts","../src/root/internal/listRequests/getOnly.ts","../src/root/internal/listRequests/updateListItem.ts","../src/root/internal/listRequests/uploadFile.ts","../src/root/internal/emailRequests.ts","../src/root/internal/userRequests.ts","../src/root/index.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosHeaders, CreateAxiosDefaults as AxiosConfig } from 'axios';\n\nconst defaultConfig: AxiosConfig = {\n headers: {\n Accept: 'application/json; odata=verbose',\n 'Content-Type': 'application/json; odata=verbose',\n },\n timeout: 15000,\n withCredentials: true,\n};\n\nexport const instance = (baseURL: string, config?: AxiosConfig) => {\n const userHeaders =\n config?.headers instanceof AxiosHeaders\n ? config.headers.toJSON()\n : config?.headers ?? {};\n\n return axios.create({\n ...defaultConfig,\n ...config,\n baseURL,\n headers: {\n ...defaultConfig.headers,\n ...userHeaders,\n },\n });\n};\n\nexport default instance;\n","import type { AxiosInstance } from 'axios';\n\nexport async function fetchDigest(\n instance: AxiosInstance,\n baseURL: string\n): Promise<string> {\n try {\n const response = await instance.post(`${baseURL}_api/contextinfo`);\n\n const formDigestValue =\n response.data?.d?.GetContextWebInformation?.FormDigestValue;\n\n if (!formDigestValue) {\n throw new Error('Invalid response structure: Missing FormDigestValue');\n }\n\n return formDigestValue;\n } catch (error) {\n console.error('Failed to retrieve the Form Digest Value:', error);\n throw new Error(`Error retrieving Form Digest Value`);\n }\n}\n","import type { ListData, SHAREPOINT_VER } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nasync function resolveMetadataType<V extends SHAREPOINT_VER>(\n context: RequestContext<V>\n) {\n if (context.resolveListItemEntityType) {\n return context.resolveListItemEntityType();\n }\n\n if (context.listItemEntityTypeFullName) {\n return context.listItemEntityTypeFullName;\n }\n\n return `SP.Data.${context.listName}ListItem`;\n}\n\nexport async function createListItem<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n listData: ListData\n) {\n const metadataType = await resolveMetadataType(context);\n const payload = {\n ...listData,\n __metadata: {\n type: metadataType,\n },\n };\n\n const response = await context.instance({\n url: context.endpoint,\n method: 'POST',\n data: JSON.stringify(payload),\n headers: {\n 'X-RequestDigest': await fetchDigest(context.instance, context.baseURL),\n },\n });\n\n return response;\n}\n","import type { CreateFileProps, SHAREPOINT_VER } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nexport async function createAttachment<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n { file, itemId }: CreateFileProps\n) {\n const requestUrl = `_api/lists/getbytitle('${context.listName}')/items(${itemId})/AttachmentFiles/add(FileName='${file.name}')`;\n const response = await context.instance.post(requestUrl, file, {\n headers: {\n 'X-RequestDigest': await fetchDigest(context.instance, context.baseURL),\n },\n withCredentials: true,\n });\n\n return response;\n}\n","import type { SHAREPOINT_VER } from '../../../types';\nimport type { RequestContext } from '../context';\n\nexport async function deleteItem<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n id: number | string\n) {\n const response = await context.instance.delete(`${context.endpoint}(${id})`);\n return response;\n}\n","export function buildLibraryPath(folderPath?: string | string[]) {\n if (!folderPath) {\n return '';\n }\n\n const segments = Array.isArray(folderPath)\n ? folderPath\n : folderPath.split('/').filter(Boolean);\n\n if (!segments.length) {\n return '';\n }\n\n const escapedSegments = segments.map((segment) => {\n if (!segment.trim()) {\n throw new Error('Folder path segments cannot be empty.');\n }\n\n const sanitized = segment.replace(/'/g, \"''\");\n\n return `/Folders('${encodeURIComponent(sanitized)}')`;\n });\n\n return escapedSegments.join('');\n}\n\nexport function encodeFileName(fileName: string) {\n if (!fileName.trim()) {\n throw new Error('File name cannot be empty.');\n }\n\n return encodeURIComponent(fileName.replace(/'/g, \"''\"));\n}\n","import type { SHAREPOINT_VER, DeleteFileProps } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\nimport { buildLibraryPath, encodeFileName } from './utils';\n\nconst SUPPORTED_VERSION: SHAREPOINT_VER = '2013';\n\nexport async function deleteFile<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n { fileName, folderPath }: DeleteFileProps\n) {\n if (context.sharepointVersion !== SUPPORTED_VERSION) {\n throw new Error(\n 'deleteFile is only supported for SharePoint 2013 REST endpoints.'\n );\n }\n\n const encodedFileName = encodeFileName(fileName);\n let requestUrl = `_api/web/lists/getbytitle('${context.listName}')/RootFolder`;\n requestUrl += buildLibraryPath(folderPath);\n requestUrl += `/Files('${encodedFileName}')`;\n\n const digest = await fetchDigest(context.instance, context.baseURL);\n\n const response = await context.instance.post(requestUrl, undefined, {\n headers: {\n 'X-HTTP-Method': 'DELETE',\n 'IF-MATCH': '*',\n 'X-RequestDigest': digest,\n },\n withCredentials: true,\n });\n\n return response;\n}\n","import type { Folder_Options, Options, SHAREPOINT_VER } from '../../types';\n\ntype QueryableOptions<T, V extends SHAREPOINT_VER = '2013'> =\n | Options<T, V>\n | Folder_Options<T>;\n\nexport function buildODataParams<T, V extends SHAREPOINT_VER = '2013'>(\n options: QueryableOptions<T, V> | undefined,\n orderBySeparator: ',' | ' ' = ','\n) {\n const { expand, orderBy, limit, filter, cols, skip } = options || {};\n\n const params: Record<string, string | number | undefined> = {\n $expand: Array.isArray(expand) ? expand.join(',') : expand,\n $top: limit,\n $skip: skip,\n $select: Array.isArray(cols) ? cols.join(',') : cols,\n $filter: filter,\n $orderby: Array.isArray(orderBy)\n ? orderBy.join(orderBySeparator)\n : orderBy,\n };\n\n return params;\n}\n\nexport function appendParamsToUrl(\n baseUrl: URL,\n params: Record<string, string | number | undefined | null>\n) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n baseUrl.searchParams.append(key, String(value));\n }\n });\n}\n","import type { Folder_Options, SHAREPOINT_VER } from '../../../types';\nimport { appendParamsToUrl, buildODataParams } from '../odata';\nimport type { RequestContext } from '../context';\n\nexport async function getFiles<\n T,\n V extends SHAREPOINT_VER = '2013'\n>(\n context: RequestContext<V>,\n options?: Folder_Options<T>\n) {\n const params = buildODataParams(options, ',');\n const url = new URL(context.endpoint, context.instance.defaults.baseURL);\n\n appendParamsToUrl(url, params);\n\n const response = await context.instance.request({\n url: context.endpoint,\n method: 'GET',\n params,\n });\n\n const data =\n options?.limit || !response.data.d.results\n ? response.data.d\n : response.data.d.results;\n\n const meta = { url };\n\n return { data, meta };\n}\n","import type { Options, SPItem, SHAREPOINT_VER } from '../../../types';\nimport { appendParamsToUrl, buildODataParams } from '../odata';\nimport type { RequestContext } from '../context';\n\nexport async function getListItems<\n K,\n V extends SHAREPOINT_VER = '2013'\n>(\n context: RequestContext<V>,\n options?: Options<K, V>\n): Promise<{ data: (K & Partial<SPItem<V>>)[]; meta: { url: URL } }> {\n const params = buildODataParams(options, ' ');\n\n const url = new URL(context.endpoint, context.instance.defaults.baseURL);\n appendParamsToUrl(url, params);\n\n const response = await context.instance.request({\n url: context.endpoint,\n method: 'GET',\n params,\n });\n\n const rawData = response.data?.d?.results ?? response.data?.d ?? response.data;\n const cols = options?.cols;\n const keys = cols\n ? (Array.isArray(cols) ? cols : [cols]).filter(Boolean)\n : undefined;\n\n const filterItem = (item: unknown) => {\n if (!keys || !item || typeof item !== 'object') {\n return item;\n }\n\n return keys.reduce<Record<string, unknown>>((acc, key) => {\n if (key in item) {\n acc[key] = (item as Record<string, unknown>)[key];\n }\n\n return acc;\n }, {});\n };\n\n const data = Array.isArray(rawData)\n ? rawData.map(filterItem)\n : filterItem(rawData);\n\n const meta = { url };\n\n return { data: data as (K & Partial<SPItem<V>>)[], meta };\n}\n","import type { AxiosInstance } from 'axios';\nimport type { Options, SHAREPOINT_VER } from '../../../types';\nimport { buildODataParams } from '../odata';\n\nexport async function getOnly<\n T,\n V extends SHAREPOINT_VER = '2013'\n>(\n instance: AxiosInstance,\n endpoint: string,\n options?: Options<T, V>\n) {\n const params = buildODataParams(options, ',');\n const { data } = await instance.get(endpoint, { params });\n if (data) {\n return data.d.results ? data.d.results : data.d;\n }\n}\n","import type { ListData, SHAREPOINT_VER } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\n\nasync function resolveMetadataType<V extends SHAREPOINT_VER>(\n context: RequestContext<V>\n) {\n if (context.resolveListItemEntityType) {\n return context.resolveListItemEntityType();\n }\n\n if (context.listItemEntityTypeFullName) {\n return context.listItemEntityTypeFullName;\n }\n\n return `SP.Data.${context.listName}ListItem`;\n}\n\nexport async function updateListItem<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n id: number | string,\n data: ListData,\n digest?: string\n) {\n const formDigestValue =\n digest || (await fetchDigest(context.instance, context.baseURL));\n\n const metadataType = await resolveMetadataType(context);\n const payload = {\n ...data,\n __metadata: {\n type: metadataType,\n },\n };\n\n const url = `_api/lists/getbytitle('${context.listName}')/getItemById('${id}')`;\n\n const response = await context.instance({\n url,\n method: 'POST',\n data: JSON.stringify(payload),\n headers: {\n 'X-RequestDigest': formDigestValue,\n 'IF-MATCH': '*',\n 'X-Http-Method': 'PATCH',\n },\n });\n\n return response;\n}\n","import type { SHAREPOINT_VER, UploadFileProps } from '../../../types';\nimport { fetchDigest } from '../digest';\nimport type { RequestContext } from '../context';\nimport { buildLibraryPath, encodeFileName } from './utils';\n\nconst SUPPORTED_VERSION: SHAREPOINT_VER = '2013';\n\nexport async function uploadFile<V extends SHAREPOINT_VER = '2013'>(\n context: RequestContext<V>,\n { file, folderPath, overwrite = true }: UploadFileProps\n) {\n if (context.sharepointVersion !== SUPPORTED_VERSION) {\n throw new Error(\n 'uploadFile is only supported for SharePoint 2013 REST endpoints.'\n );\n }\n\n if (!file?.name) {\n throw new Error('A file with a valid name must be provided.');\n }\n\n let requestUrl = `_api/web/lists/getbytitle('${context.listName}')/RootFolder`;\n\n requestUrl += buildLibraryPath(folderPath);\n\n const encodedFileName = encodeFileName(file.name);\n requestUrl += `/Files/add(url='${encodedFileName}',overwrite=${\n overwrite ? 'true' : 'false'\n })`;\n\n const digest = await fetchDigest(context.instance, context.baseURL);\n\n const response = await context.instance.post(requestUrl, file, {\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n 'X-RequestDigest': digest,\n },\n withCredentials: true,\n });\n\n return response;\n}\n","import type { AxiosResponse } from 'axios';\nimport type { EmailProps } from '../../types';\nimport { fetchDigest } from './digest';\nimport type { RequestContext } from './context';\n\ntype SendEmailResponse = AxiosResponse<{\n d: {\n SendEmail: null;\n };\n}>;\n\nexport async function sendEmail(\n context: RequestContext,\n { From, To, Subject, Body }: EmailProps\n): Promise<SendEmailResponse> {\n const httpRequest = '_api/SP.Utilities.Utility.SendEmail';\n\n const response = await context.instance({\n url: httpRequest,\n method: 'POST',\n headers: {\n 'X-RequestDigest': await fetchDigest(\n context.instance,\n context.baseURL\n ),\n 'X-Http-Method': 'POST',\n 'Content-Type': 'application/json;odata=verbose',\n },\n data: JSON.stringify({\n properties: {\n __metadata: {\n type: 'SP.Utilities.EmailProperties',\n },\n From,\n To: {\n results: Array.isArray(To) ? To : [To],\n },\n Body,\n Subject,\n },\n }),\n });\n\n return response;\n}\n","import type { AxiosInstance } from 'axios';\nimport type {\n PersonField,\n UserPermision,\n UserProfile,\n} from '../../types';\nimport type { RequestContext } from './context';\n\ntype RoleDefinition = {\n BasePermissions: {\n High: string;\n };\n};\n\nexport async function typeAhead(\n instance: AxiosInstance,\n input: string,\n filter?: string\n): Promise<PersonField> {\n const requestUrl = `_api/SP.UI.ApplicationPages.ClientPeoplePickerWebServiceInterface.clientPeoplePickerSearchUser`;\n\n const data = {\n queryParams: {\n __metadata: {\n type: 'SP.UI.ApplicationPages.ClientPeoplePickerQueryParameters',\n },\n AllowEmailAddresses: true,\n AllowMultipleEntities: false,\n AllUrlZones: false,\n MaximumEntitySuggestions: 10,\n PrincipalSource: 15,\n PrincipalType: 1,\n QueryString: input,\n },\n };\n\n if (filter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data.queryParams as any).RequiredProperties = [filter];\n }\n\n const response = await instance.post(requestUrl, JSON.stringify(data), {\n headers: {\n Accept: 'application/json; odata=verbose',\n 'Content-Type': 'application/json;odata=verbose',\n },\n });\n\n return response.data.d.ClientPeoplePickerSearchUser;\n}\n\nexport async function currentUserProperties(\n instance: AxiosInstance\n): Promise<UserProfile> {\n const requestUrl = '_api/sp.userprofiles.peoplemanager/getmyproperties';\n let profile: any = await instance.get(requestUrl);\n\n profile = profile.data.d;\n\n profile.UserProfileProperties.results.forEach(\n (prop: { Key: string; Value: string }) => {\n if (prop.Key === 'FirstName') {\n profile.FirstName = prop.Value;\n }\n if (prop.Key === 'LastName') {\n profile.LastName = prop.Value;\n }\n if (prop.Key === 'Country') {\n profile.Country = prop.Value;\n }\n if (prop.Key === 'UserName') {\n profile.UserName = prop.Value;\n }\n }\n );\n\n return profile;\n}\n\nexport async function getSiteUser(instance: AxiosInstance, searchValue: string) {\n const requestUrl = `_api/web/siteusers?&$filter=substringof('${searchValue}', Title) or substringof('${searchValue}', LoginName) or substringof('${searchValue}', Email)&$top=50&$expand=Groups`;\n const response = await instance.get(requestUrl);\n return response.data.d;\n}\n\nexport async function roleDefinitions(instance: AxiosInstance) {\n const requestUrl = `_api/Web/RoleDefinitions`;\n const response = await instance.get(requestUrl);\n return response.data.d.results as RoleDefinition[];\n}\n\nexport async function getEffectiveBasePermissions(instance: AxiosInstance) {\n const requestUrl = `_api/Web/effectiveBasePermissions`;\n const response = await instance.get(requestUrl);\n return response.data.d.EffectiveBasePermissions;\n}\n\nexport async function currentUserPermissions(\n context: RequestContext\n): Promise<UserPermision> {\n const { High } = await getEffectiveBasePermissions(context.instance);\n const definitions = await roleDefinitions(context.instance);\n\n const result = definitions.find(\n ({ BasePermissions }: RoleDefinition) => BasePermissions.High === High\n );\n\n return result as UserPermision;\n}\n","import { AxiosInstance, CreateAxiosDefaults as AxiosConfig } from 'axios';\nimport instance from './instance';\nimport {\n CreateFileProps,\n DeleteFileProps,\n CurrentUser,\n EmailProps,\n Field_Options,\n Folder_Options,\n UploadFileProps,\n IListName,\n ItemID,\n ListData,\n Options,\n PersonField,\n SHAREPOINT_VER,\n UserPermision,\n UserProfile,\n} from '../types';\nimport { RequestContext } from './internal/context';\nimport {\n createAttachment,\n createListItem,\n deleteItem,\n deleteFile as deleteLibraryFile,\n getFiles,\n getListItems,\n getOnly,\n updateListItem,\n uploadFile,\n} from './internal/listRequests';\nimport { sendEmail as sendEmailRequest } from './internal/emailRequests';\nimport {\n currentUserPermissions as resolveCurrentUserPermissions,\n currentUserProperties as loadCurrentUserProperties,\n getSiteUser as fetchSiteUser,\n typeAhead,\n} from './internal/userRequests';\nimport { fetchDigest } from './internal/digest';\n\nclass HTTPSharePointRequests<\n T extends {\n LISTS: Record<string, unknown>;\n FOLDERS?: Record<string, unknown>;\n }\n> {\n private baseURL: string;\n private endpoint: string;\n private listName: string;\n private instance: AxiosInstance;\n private sharepointVersion: SHAREPOINT_VER;\n private listItemEntityTypeFullName?: string;\n\n constructor(baseURL: string, config?: AxiosConfig) {\n this.baseURL = baseURL.endsWith('/') ? baseURL : `${baseURL}/`;\n this.endpoint = '/api';\n this.listName = '';\n this.instance = instance(this.baseURL, config);\n this.sharepointVersion = '2013';\n this.listItemEntityTypeFullName = undefined;\n }\n\n private getContext<V extends SHAREPOINT_VER = '2013'>(): RequestContext<V> {\n return {\n instance: this.instance,\n baseURL: this.baseURL,\n endpoint: this.endpoint,\n listName: this.listName,\n sharepointVersion: this.sharepointVersion as V,\n listItemEntityTypeFullName: this.listItemEntityTypeFullName,\n resolveListItemEntityType: this.resolveListItemEntityTypeFullName.bind(\n this\n ),\n };\n }\n\n private async resolveListItemEntityTypeFullName(): Promise<string> {\n if (this.listItemEntityTypeFullName) {\n return this.listItemEntityTypeFullName;\n }\n\n if (!this.listName) {\n throw new Error('List name is not set.');\n }\n\n if (this.sharepointVersion !== '2013') {\n this.listItemEntityTypeFullName = `SP.Data.${this.listName}ListItem`;\n return this.listItemEntityTypeFullName;\n }\n\n const response = await this.instance.get(\n `_api/web/lists/GetByTitle('${this.listName}')?$select=ListItemEntityTypeFullName`\n );\n\n const entityType =\n response.data?.d?.ListItemEntityTypeFullName ??\n response.data?.ListItemEntityTypeFullName;\n\n if (!entityType || typeof entityType !== 'string') {\n throw new Error(\n `Unable to resolve ListItemEntityTypeFullName for list \"${this.listName}\".`\n );\n }\n\n this.listItemEntityTypeFullName = entityType;\n return this.listItemEntityTypeFullName;\n }\n\n /**\n * @deprecated Use `from` instead.\n */\n list(listName: IListName<T>) {\n this.listName = listName;\n this.endpoint = `_vti_bin/ListData.svc/${listName}`;\n this.sharepointVersion = '2010';\n this.listItemEntityTypeFullName = undefined;\n return this;\n }\n\n public readonly lists = {\n get: () => {\n this.endpoint = '_api/web/lists';\n this.sharepointVersion = '2013';\n return getListItems(this.getContext());\n },\n };\n\n public getDigest() {\n return fetchDigest(this.instance, this.baseURL);\n }\n\n public from<\n K extends Extract<keyof T['LISTS'], string>,\n V extends SHAREPOINT_VER = '2013'\n >(listName: K, sharepoint_ver?: V) {\n const version = (sharepoint_ver ?? '2013') as V;\n\n this.listName = listName;\n this.sharepointVersion = version;\n this.listItemEntityTypeFullName = undefined;\n this.endpoint =\n version === '2013'\n ? `_api/web/lists/GetByTitle('${this.listName}')/items`\n : `_vti_bin/ListData.svc/${listName}`;\n\n const getContext = () => this.getContext<V>();\n\n return {\n create: (data: ListData) => createListItem(getContext(), data),\n get: (options?: Options<T['LISTS'][K], V>) =>\n getListItems<T['LISTS'][K], V>(getContext(), options),\n update: (id: ItemID, data: ListData, digest?: string) =>\n updateListItem(getContext(), id, data, digest),\n delete: (id: ItemID) => deleteItem(getContext(), id),\n createFile: (props: CreateFileProps) =>\n createAttachment(getContext(), props),\n uploadFile: (props: UploadFileProps) => uploadFile(getContext(), props),\n deleteFile: (props: DeleteFileProps) =>\n deleteLibraryFile(getContext(), props),\n fields: (options?: Field_Options<T['LISTS'][K], V>) => {\n this.endpoint = !options?.fieldName\n ? `_api/web/lists/GetByTitle('${this.listName}')/fields`\n : `_api/web/lists/GetByTitle('${this.listName}')/fields/getbytitle('${options.fieldName}')`;\n return {\n get: () =>\n getOnly<T['LISTS'][K], V>(this.instance, this.endpoint, options),\n };\n },\n };\n }\n\n public folders = {\n get: () => {\n this.endpoint = '_api/web/folders';\n this.sharepointVersion = '2013';\n getListItems(this.getContext());\n },\n };\n\n public folder(folderName?: string | string[]) {\n let filePath = ['Shared Documents'];\n\n if (folderName) {\n filePath = Array.isArray(folderName)\n ? [...filePath, ...folderName]\n : [...filePath, folderName];\n }\n\n this.endpoint = `_api/web/GetFolderByServerRelativeUrl('${filePath.join(\n '/'\n )}')`;\n this.sharepointVersion = '2013';\n\n const getContext = () => this.getContext();\n\n return {\n get: (options?: Folder_Options<any>) => {\n if (!options?.type) {\n this.endpoint += '/Files';\n } else {\n this.endpoint += `/${options.type}`;\n }\n return getFiles(getContext(), options);\n },\n };\n }\n\n public users(options?: Options<any>) {\n this.endpoint = '_api/web/SiteUserInfoList/items';\n this.sharepointVersion = '2013';\n return {\n get: () => getListItems(this.getContext(), options),\n };\n }\n\n public email = {\n send: (props: EmailProps) => {\n this.sharepointVersion = '2013';\n return sendEmailRequest(this.getContext(), props);\n },\n };\n\n public user = {\n properties: () => ({\n get: (): Promise<UserProfile> => {\n this.sharepointVersion = '2013';\n return loadCurrentUserProperties(this.instance);\n },\n }),\n searchSiteUser: (searchValue: string) => {\n this.sharepointVersion = '2013';\n return fetchSiteUser(this.instance, searchValue);\n },\n searchUser: (input: string, filter?: string): Promise<PersonField> => {\n this.sharepointVersion = '2013';\n return typeAhead(this.instance, input, filter);\n },\n current: () => {\n this.endpoint = '_api/web/currentUser';\n this.sharepointVersion = '2013';\n return {\n get: (): Promise<CurrentUser> => getOnly(this.instance, this.endpoint),\n };\n },\n currentPermission: () => ({\n get: (): Promise<UserPermision> => {\n this.sharepointVersion = '2013';\n return resolveCurrentUserPermissions(this.getContext());\n },\n }),\n };\n}\n\nexport default HTTPSharePointRequests;\n","import SHAREPOINT_REQUESTS from './root';\n\nimport type { CreateAxiosDefaults as AxiosConfig } from 'axios';\nimport type { LookupField, ChoiceField, PersonField } from './types';\n\n// Load environment variables from .env file\n\nexport default function createBase<\n T extends { LISTS: Record<string, any>; FOLDERS?: Record<string, any> } = any\n>(){\n function create({\n baseURL,\n config,\n }: {\n baseURL: string;\n config?: AxiosConfig;\n }) {\n if (!baseURL) {\n throw new Error('A valid SharePoint URL must be provided.');\n }\n return new SHAREPOINT_REQUESTS<T>(baseURL, config);\n }\n\n return {\n /**\n * @deprecated Use `create` instead.\n */\n baseURL(url: string, config?: AxiosConfig) {\n return create({ baseURL: url, config });\n },\n create,\n };\n}\n\nexport { LookupField, ChoiceField, PersonField };\n\n\n"],"names":["defaultConfig","headers","Accept","Content-Type","timeout","withCredentials","fetchDigest","_x","_x2","_fetchDigest","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","instance","baseURL","_response$data","formDigestValue","w","_context","p","n","post","v","data","d","GetContextWebInformation","FormDigestValue","Error","a","console","error","resolveMetadataType","_resolveMetadataType","context","resolveListItemEntityType","listItemEntityTypeFullName","listName","_createListItem","_callee2","listData","payload","_t","_t2","_t3","_t5","_context2","_extends","__metadata","type","endpoint","JSON","stringify","X-RequestDigest","call","url","method","_createAttachment","_ref","file","itemId","name","_deleteItem","id","buildLibraryPath","folderPath","segments","Array","isArray","split","filter","Boolean","length","map","segment","trim","sanitized","replace","encodeURIComponent","join","encodeFileName","fileName","_deleteFile","encodedFileName","requestUrl","digest","sharepointVersion","undefined","X-HTTP-Method","IF-MATCH","buildODataParams","options","orderBySeparator","expand","orderBy","limit","cols","skip","$expand","$top","$skip","$select","$filter","$orderby","appendParamsToUrl","baseUrl","params","Object","entries","forEach","_ref2","value","searchParams","append","String","_getFiles","response","URL","defaults","request","results","meta","getListItems","_getListItems","_response$data$d$resu","_response$data2","rawData","keys","filterItem","item","reduce","acc","key","getOnly","_x3","_getOnly","get","_updateListItem","X-Http-Method","_uploadFile","_ref$overwrite","overwrite","_sendEmail","From","To","Subject","Body","_t4","properties","_typeAhead","input","queryParams","AllowEmailAddresses","AllowMultipleEntities","AllUrlZones","MaximumEntitySuggestions","PrincipalSource","PrincipalType","QueryString","RequiredProperties","ClientPeoplePickerSearchUser","_currentUserProperties","profile","UserProfileProperties","prop","Key","FirstName","Value","LastName","Country","UserName","_getSiteUser","_callee3","searchValue","_context3","roleDefinitions","_x7","_roleDefinitions","_callee4","_context4","getEffectiveBasePermissions","_x8","_getEffectiveBasePermissions","_callee5","_context5","EffectiveBasePermissions","_currentUserPermissions","_callee6","High","result","_context6","find","BasePermissions","HTTPSharePointRequests","config","this","lists","_this","getContext","folders","email","send","props","sendEmailRequest","user","_x4","loadCurrentUserProperties","searchSiteUser","_x5","_x6","fetchSiteUser","searchUser","typeAhead","current","currentPermission","_x9","resolveCurrentUserPermissions","endsWith","userHeaders","AxiosHeaders","toJSON","_config$headers","axios","create","_proto","prototype","resolveListItemEntityTypeFullName","bind","_resolveListItemEntityTypeFullName","_response$data$d$List","entityType","ListItemEntityTypeFullName","list","getDigest","from","sharepoint_ver","version","_this2","createListItem","update","updateListItem","delete","deleteItem","createFile","createAttachment","uploadFile","deleteFile","deleteLibraryFile","fields","fieldName","folder","folderName","filePath","concat","_this3","getFiles","users","_this4","SHAREPOINT_REQUESTS"],"mappings":"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"}
|
|
@@ -320,6 +320,73 @@ function _deleteItem() {
|
|
|
320
320
|
return _deleteItem.apply(this, arguments);
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
+
function buildLibraryPath(folderPath) {
|
|
324
|
+
if (!folderPath) {
|
|
325
|
+
return '';
|
|
326
|
+
}
|
|
327
|
+
var segments = Array.isArray(folderPath) ? folderPath : folderPath.split('/').filter(Boolean);
|
|
328
|
+
if (!segments.length) {
|
|
329
|
+
return '';
|
|
330
|
+
}
|
|
331
|
+
var escapedSegments = segments.map(function (segment) {
|
|
332
|
+
if (!segment.trim()) {
|
|
333
|
+
throw new Error('Folder path segments cannot be empty.');
|
|
334
|
+
}
|
|
335
|
+
var sanitized = segment.replace(/'/g, "''");
|
|
336
|
+
return "/Folders('" + encodeURIComponent(sanitized) + "')";
|
|
337
|
+
});
|
|
338
|
+
return escapedSegments.join('');
|
|
339
|
+
}
|
|
340
|
+
function encodeFileName(fileName) {
|
|
341
|
+
if (!fileName.trim()) {
|
|
342
|
+
throw new Error('File name cannot be empty.');
|
|
343
|
+
}
|
|
344
|
+
return encodeURIComponent(fileName.replace(/'/g, "''"));
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
var SUPPORTED_VERSION = '2013';
|
|
348
|
+
function deleteFile(_x, _x2) {
|
|
349
|
+
return _deleteFile.apply(this, arguments);
|
|
350
|
+
}
|
|
351
|
+
function _deleteFile() {
|
|
352
|
+
_deleteFile = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(context, _ref) {
|
|
353
|
+
var fileName, folderPath, encodedFileName, requestUrl, digest, response;
|
|
354
|
+
return _regenerator().w(function (_context) {
|
|
355
|
+
while (1) switch (_context.n) {
|
|
356
|
+
case 0:
|
|
357
|
+
fileName = _ref.fileName, folderPath = _ref.folderPath;
|
|
358
|
+
if (!(context.sharepointVersion !== SUPPORTED_VERSION)) {
|
|
359
|
+
_context.n = 1;
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
throw new Error('deleteFile is only supported for SharePoint 2013 REST endpoints.');
|
|
363
|
+
case 1:
|
|
364
|
+
encodedFileName = encodeFileName(fileName);
|
|
365
|
+
requestUrl = "_api/web/lists/getbytitle('" + context.listName + "')/RootFolder";
|
|
366
|
+
requestUrl += buildLibraryPath(folderPath);
|
|
367
|
+
requestUrl += "/Files('" + encodedFileName + "')";
|
|
368
|
+
_context.n = 2;
|
|
369
|
+
return fetchDigest(context.instance, context.baseURL);
|
|
370
|
+
case 2:
|
|
371
|
+
digest = _context.v;
|
|
372
|
+
_context.n = 3;
|
|
373
|
+
return context.instance.post(requestUrl, undefined, {
|
|
374
|
+
headers: {
|
|
375
|
+
'X-HTTP-Method': 'DELETE',
|
|
376
|
+
'IF-MATCH': '*',
|
|
377
|
+
'X-RequestDigest': digest
|
|
378
|
+
},
|
|
379
|
+
withCredentials: true
|
|
380
|
+
});
|
|
381
|
+
case 3:
|
|
382
|
+
response = _context.v;
|
|
383
|
+
return _context.a(2, response);
|
|
384
|
+
}
|
|
385
|
+
}, _callee);
|
|
386
|
+
}));
|
|
387
|
+
return _deleteFile.apply(this, arguments);
|
|
388
|
+
}
|
|
389
|
+
|
|
323
390
|
function buildODataParams(options, orderBySeparator) {
|
|
324
391
|
if (orderBySeparator === void 0) {
|
|
325
392
|
orderBySeparator = ',';
|
|
@@ -540,22 +607,7 @@ function _updateListItem() {
|
|
|
540
607
|
return _updateListItem.apply(this, arguments);
|
|
541
608
|
}
|
|
542
609
|
|
|
543
|
-
var SUPPORTED_VERSION = '2013';
|
|
544
|
-
function normalizeFolderPath(folderPath) {
|
|
545
|
-
var segments = Array.isArray(folderPath) ? folderPath : folderPath.split('/').filter(Boolean);
|
|
546
|
-
if (!segments.length) {
|
|
547
|
-
return '';
|
|
548
|
-
}
|
|
549
|
-
var escapedSegments = segments.map(function (segment) {
|
|
550
|
-
if (!segment.trim()) {
|
|
551
|
-
throw new Error('Folder path segments cannot be empty.');
|
|
552
|
-
}
|
|
553
|
-
// SharePoint expects single quotes to be doubled in OData paths.
|
|
554
|
-
var sanitized = segment.replace(/'/g, "''");
|
|
555
|
-
return "/Folders('" + encodeURIComponent(sanitized) + "')";
|
|
556
|
-
});
|
|
557
|
-
return escapedSegments.join('');
|
|
558
|
-
}
|
|
610
|
+
var SUPPORTED_VERSION$1 = '2013';
|
|
559
611
|
function uploadFile(_x, _x2) {
|
|
560
612
|
return _uploadFile.apply(this, arguments);
|
|
561
613
|
}
|
|
@@ -566,7 +618,7 @@ function _uploadFile() {
|
|
|
566
618
|
while (1) switch (_context.n) {
|
|
567
619
|
case 0:
|
|
568
620
|
file = _ref.file, folderPath = _ref.folderPath, _ref$overwrite = _ref.overwrite, overwrite = _ref$overwrite === void 0 ? true : _ref$overwrite;
|
|
569
|
-
if (!(context.sharepointVersion !== SUPPORTED_VERSION)) {
|
|
621
|
+
if (!(context.sharepointVersion !== SUPPORTED_VERSION$1)) {
|
|
570
622
|
_context.n = 1;
|
|
571
623
|
break;
|
|
572
624
|
}
|
|
@@ -579,10 +631,8 @@ function _uploadFile() {
|
|
|
579
631
|
throw new Error('A file with a valid name must be provided.');
|
|
580
632
|
case 2:
|
|
581
633
|
requestUrl = "_api/web/lists/getbytitle('" + context.listName + "')/RootFolder";
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
}
|
|
585
|
-
encodedFileName = encodeURIComponent(file.name.replace(/'/g, "''"));
|
|
634
|
+
requestUrl += buildLibraryPath(folderPath);
|
|
635
|
+
encodedFileName = encodeFileName(file.name);
|
|
586
636
|
requestUrl += "/Files/add(url='" + encodedFileName + "',overwrite=" + (overwrite ? 'true' : 'false') + ")";
|
|
587
637
|
_context.n = 3;
|
|
588
638
|
return fetchDigest(context.instance, context.baseURL);
|
|
@@ -996,6 +1046,9 @@ var HTTPSharePointRequests = /*#__PURE__*/function () {
|
|
|
996
1046
|
uploadFile: function uploadFile$1(props) {
|
|
997
1047
|
return uploadFile(getContext(), props);
|
|
998
1048
|
},
|
|
1049
|
+
deleteFile: function deleteFile$1(props) {
|
|
1050
|
+
return deleteFile(getContext(), props);
|
|
1051
|
+
},
|
|
999
1052
|
fields: function fields(options) {
|
|
1000
1053
|
_this2.endpoint = !(options != null && options.fieldName) ? "_api/web/lists/GetByTitle('" + _this2.listName + "')/fields" : "_api/web/lists/GetByTitle('" + _this2.listName + "')/fields/getbytitle('" + options.fieldName + "')";
|
|
1001
1054
|
return {
|