@odata2ts/http-client-jquery 0.11.0 → 0.12.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,59 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### Dependencies
7
+
8
+ * The following workspace dependencies were updated
9
+ * dependencies
10
+ * @odata2ts/http-client-base bumped from ^0.5.5 to ^0.5.6
11
+
12
+ ## [0.12.0](https://github.com/odata2ts/http-client/compare/@odata2ts/jquery-v0.11.1...@odata2ts/jquery-v0.12.0) (2026-07-31)
13
+
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * **jquery:** AjaxRequestConfig becomes JQueryRequestConfig
18
+ * switch to ESM tends to break stuff
19
+ * additional headers are now part of the config parameter
20
+ * **jquery:** removed default accept & content-type headers as well as `dataType=json`; removed merge & retrieveBigNumbersAsString methods (base-lib); all of these settings can now be configured per operation via the `additionalHeaders` option.
21
+
22
+ ### Features
23
+
24
+ * allow for additional headers for all operations ([#10](https://github.com/odata2ts/http-client/issues/10)) ([75eedd3](https://github.com/odata2ts/http-client/commit/75eedd3ebb8534188a5a644aee9e69e17f1f0c80))
25
+ * blob and stream support ([#12](https://github.com/odata2ts/http-client/issues/12)) ([ae6f062](https://github.com/odata2ts/http-client/commit/ae6f062371a0ad11707fa3f9edff9571998edb5b))
26
+ * conventionalize client errors ([#5](https://github.com/odata2ts/http-client/issues/5)) ([a8e8912](https://github.com/odata2ts/http-client/commit/a8e89125eeda47436d48507d6a71efc90953f878))
27
+ * create blob request ([#28](https://github.com/odata2ts/http-client/issues/28)) ([4cc238d](https://github.com/odata2ts/http-client/commit/4cc238d3fbe07c09d56732b4b12d0b1b875a3ef5))
28
+ * **jquery:** allow for query params ([afd13a8](https://github.com/odata2ts/http-client/commit/afd13a862dc07485c0f619a3e39521f7ce6fc65e))
29
+ * **jquery:** copy over jquery-client and rename ([#3](https://github.com/odata2ts/http-client/issues/3)) ([55deb6c](https://github.com/odata2ts/http-client/commit/55deb6c75159bfc46b0ae87cb3c0ec3afda9508e))
30
+ * switch to http-client-api ([52d1b86](https://github.com/odata2ts/http-client/commit/52d1b868ee82dbaf45486da6b22fdcf4c773dfb8))
31
+ * switch to http-client-api ([5a6da23](https://github.com/odata2ts/http-client/commit/5a6da23053b3ea5adb866bb7e30b469f1b8ed260))
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * add ".js" suffix for all relative imports ([#20](https://github.com/odata2ts/http-client/issues/20)) ([961c910](https://github.com/odata2ts/http-client/commit/961c91002c8b1e9a7a6256cccd6b6d0ec9c142cd))
37
+ * always build all packages before release ([#26](https://github.com/odata2ts/http-client/issues/26)) ([a316f6c](https://github.com/odata2ts/http-client/commit/a316f6ce54c4360c8d6f87799ba6fd9c53bff52c))
38
+ * delete requests with Accept json header ([ea1b06d](https://github.com/odata2ts/http-client/commit/ea1b06d509b490e1e899e96a62a10eac3f65da8e))
39
+ * deploy with code ([#25](https://github.com/odata2ts/http-client/issues/25)) ([3e0e78c](https://github.com/odata2ts/http-client/commit/3e0e78cd2e0b0c3215bc0ed97dd62c75d8b6c5ea))
40
+ * **http-client-jquery:** stop pinning an external image's exact byte size ([fb3fece](https://github.com/odata2ts/http-client/commit/fb3fece1b5d39459acdd69d0d3c37798641a2288))
41
+ * send a plain text request body as it is ([#35](https://github.com/odata2ts/http-client/issues/35)) ([2d44aff](https://github.com/odata2ts/http-client/commit/2d44aff43d4804070d53ea84dae271365bab4cf8))
42
+ * update typescript to 6.0.3 and migrate to nodenext resolution ([f713098](https://github.com/odata2ts/http-client/commit/f71309861d7a58b7f0fb65cf8395f0262a932a9f))
43
+
44
+
45
+ ### Code Refactoring
46
+
47
+ * expand additionalHeaders param to internalConfig ([#15](https://github.com/odata2ts/http-client/issues/15)) ([7fe1d73](https://github.com/odata2ts/http-client/commit/7fe1d73a7436f64b84a060bd1dbf9e121ef901ce))
48
+ * **jquery:** benefit from api additions & improve config handling ([d08e4f3](https://github.com/odata2ts/http-client/commit/d08e4f30140d4c1d8968c71b89c9eb009ab44a93))
49
+ * **jquery:** remove default headers ([3106d97](https://github.com/odata2ts/http-client/commit/3106d9768765e7cc228097ed1270439d47ff0e0c))
50
+ * switch to vitest & ESM ([#18](https://github.com/odata2ts/http-client/issues/18)) ([748558f](https://github.com/odata2ts/http-client/commit/748558f1e3f699085ade1058b1459c843f60994f))
51
+
52
+
53
+ ### Dependencies
54
+
55
+ * The following workspace dependencies were updated
56
+ * dependencies
57
+ * @odata2ts/http-client-base bumped from ^0.5.6 to ^0.5.7
58
+
6
59
  ## [0.11.0](https://github.com/odata2ts/http-client/compare/@odata2ts/jquery-v0.10.0...@odata2ts/jquery-v0.11.0) (2026-06-10)
7
60
 
8
61
 
@@ -1,4 +1,3 @@
1
- /// <reference types="jquery/JQueryStatic" />
2
1
  import { HttpResponseModel, ODataHttpClient, ODataHttpClientOptions, ODataHttpMethods } from "@odata2ts/http-client-api";
3
2
  import { BaseHttpClient, BaseRequestConfig } from "@odata2ts/http-client-base";
4
3
  import { JQueryRequestConfig } from "./JQueryRequestConfig";
@@ -28,12 +28,14 @@ class JQueryClient extends http_client_base_1.BaseHttpClient {
28
28
  return collector;
29
29
  }, {});
30
30
  }
31
- executeRequest(method, url, data, requestConfig, internalConfig = {}) {
32
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ executeRequest(method_1, url_1, data_1, requestConfig_1) {
32
+ return tslib_1.__awaiter(this, arguments, void 0, function* (method, url, data, requestConfig, internalConfig = {}) {
33
33
  const { headers } = internalConfig;
34
34
  const _a = (0, JQueryRequestConfig_1.mergeConfigs)(this.config, (0, JQueryRequestConfig_1.mergeConfigs)({ headers }, requestConfig)), { params } = _a, mergedConfig = tslib_1.__rest(_a, ["params"]);
35
35
  // set core inputs for request
36
- const resultConfig = Object.assign(Object.assign({}, mergedConfig), { method, data: JSON.stringify(data), url });
36
+ const resultConfig = Object.assign(Object.assign({}, mergedConfig), { method,
37
+ // only an explicitly plain text body is passed through as it is
38
+ data: this.isPlainTextBody(internalConfig.headers) ? data : JSON.stringify(data), url });
37
39
  // apply additional query params to the URL
38
40
  if (params && Object.values(params).length) {
39
41
  resultConfig.url +=
@@ -1 +1 @@
1
- {"version":3,"file":"JQueryClient.js","sourceRoot":"","sources":["../src/JQueryClient.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference path=\"../../../node_modules/@types/jquery/JQueryStatic.d.ts\" />\n\nimport {\n HttpResponseModel,\n ODataHttpClient,\n ODataHttpClientOptions,\n ODataHttpMethods,\n} from \"@odata2ts/http-client-api\";\nimport { BaseHttpClient, BaseRequestConfig } from \"@odata2ts/http-client-base\";\nimport { JQueryClientError } from \"./JQueryClientError\";\nimport { JQueryRequestConfig, mergeConfigs } from \"./JQueryRequestConfig\";\n\nimport jqXHR = JQuery.jqXHR;\n\nexport const DEFAULT_ERROR_MESSAGE = \"No error message!\";\n\ninterface InternalRequestConfig\n extends JQueryRequestConfig,\n Pick<JQuery.AjaxSettings, \"url\" | \"data\" | \"dataType\" | \"method\" | \"xhrFields\"> {}\n\nexport class JQueryClient extends BaseHttpClient<JQueryRequestConfig> implements ODataHttpClient<JQueryRequestConfig> {\n private readonly client: JQueryStatic;\n private readonly config: JQueryRequestConfig;\n\n constructor(jquery: JQueryStatic, config?: JQueryRequestConfig, clientOptions?: ODataHttpClientOptions) {\n super(clientOptions);\n this.client = jquery;\n this.config = config ?? {};\n }\n\n protected mapHeaders(jqXhr: jqXHR): Record<string, string> {\n return jqXhr\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/)\n .reduce((collector: Record<string, string>, line: string) => {\n const parts = line.split(\": \");\n const header = parts.shift();\n const value = parts.join(\": \");\n\n if (header) {\n collector[header.toLowerCase()] = value;\n }\n return collector;\n }, {});\n }\n\n protected async executeRequest<ResponseModel>(\n method: ODataHttpMethods,\n url: string,\n data: any,\n requestConfig?: JQueryRequestConfig,\n internalConfig: BaseRequestConfig = {},\n ): Promise<HttpResponseModel<ResponseModel>> {\n const { headers } = internalConfig;\n const { params, ...mergedConfig } = mergeConfigs(this.config, mergeConfigs({ headers }, requestConfig));\n\n // set core inputs for request\n const resultConfig: InternalRequestConfig = {\n ...mergedConfig,\n method,\n data: JSON.stringify(data),\n url,\n };\n\n // apply additional query params to the URL\n if (params && Object.values(params).length) {\n resultConfig.url +=\n (url.match(/\\?/) ? \"&\" : \"?\") +\n // @ts-ignore\n new URLSearchParams(params).toString();\n }\n\n // handling of extra data types: blob and stream (not supported)\n if (internalConfig.dataType === \"blob\") {\n resultConfig.xhrFields = { responseType: \"blob\" };\n } else if (internalConfig.dataType === \"stream\") {\n throw new Error(\"Streaming is not supported by the JqueryClient!\");\n }\n\n // the actual request\n return new Promise((resolve, reject) => {\n this.client.ajax({\n ...resultConfig,\n success: (response: any, textStatus: string, jqXHR: JQuery.jqXHR) => {\n resolve({\n status: jqXHR.status,\n statusText: jqXHR.statusText,\n headers: this.mapHeaders(jqXHR),\n data: response,\n });\n },\n error: (jqXHR: JQuery.jqXHR, textStatus: string, thrownError: string) => {\n const responseMessage = this.retrieveErrorMessage(jqXHR?.responseJSON);\n const failMsg = responseMessage || thrownError || DEFAULT_ERROR_MESSAGE;\n const errorMessage = responseMessage ? \"OData server responded with error: \" + responseMessage : failMsg;\n const responseHeaders = this.mapHeaders(jqXHR);\n reject(new JQueryClientError(errorMessage, jqXHR.status, responseHeaders, new Error(failMsg), jqXHR));\n },\n });\n });\n }\n}\n"]}
1
+ {"version":3,"file":"JQueryClient.js","sourceRoot":"","sources":["../src/JQueryClient.ts"],"names":[],"mappings":";AAAA,8EAA8E;;;;AAQ9E,iEAA+E;AAC/E,2DAAwD;AACxD,+DAA0E;AAI7D,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AAMzD,MAAa,YAAa,SAAQ,iCAAmC;IAInE,YAAY,MAAoB,EAAE,MAA4B,EAAE,aAAsC;QACpG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAC7B,CAAC;IAES,UAAU,CAAC,KAAY;QAC/B,OAAO,KAAK;aACT,qBAAqB,EAAE;aACvB,IAAI,EAAE;aACN,KAAK,CAAC,SAAS,CAAC;aAChB,MAAM,CAAC,CAAC,SAAiC,EAAE,IAAY,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,MAAM,EAAE,CAAC;gBACX,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;YAC1C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAEe,cAAc;qEAC5B,MAAwB,EACxB,GAAW,EACX,IAAS,EACT,aAAmC,EACnC,iBAAoC,EAAE;YAEtC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;YACnC,MAAM,KAA8B,IAAA,kCAAY,EAAC,IAAI,CAAC,MAAM,EAAE,IAAA,kCAAY,EAAC,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC,EAAjG,EAAE,MAAM,OAAyF,EAApF,YAAY,sBAAzB,UAA2B,CAAsE,CAAC;YAExG,8BAA8B;YAC9B,MAAM,YAAY,mCACb,YAAY,KACf,MAAM;gBACN,gEAAgE;gBAChE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAChF,GAAG,GACJ,CAAC;YAEF,2CAA2C;YAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC3C,YAAY,CAAC,GAAG;oBACd,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;wBAC7B,aAAa;wBACb,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3C,CAAC;YAED,gEAAgE;YAChE,IAAI,cAAc,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACvC,YAAY,CAAC,SAAS,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YACpD,CAAC;iBAAM,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,qBAAqB;YACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,iCACX,YAAY,KACf,OAAO,EAAE,CAAC,QAAa,EAAE,UAAkB,EAAE,KAAmB,EAAE,EAAE;wBAClE,OAAO,CAAC;4BACN,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,UAAU,EAAE,KAAK,CAAC,UAAU;4BAC5B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;4BAC/B,IAAI,EAAE,QAAQ;yBACf,CAAC,CAAC;oBACL,CAAC,EACD,KAAK,EAAE,CAAC,KAAmB,EAAE,UAAkB,EAAE,WAAmB,EAAE,EAAE;wBACtE,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,CAAC,CAAC;wBACvE,MAAM,OAAO,GAAG,eAAe,IAAI,WAAW,IAAI,6BAAqB,CAAC;wBACxE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,qCAAqC,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;wBACzG,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;wBAC/C,MAAM,CAAC,IAAI,qCAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;oBACxG,CAAC,IACD,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAnFD,oCAmFC","sourcesContent":["/// <reference path=\"../../../node_modules/@types/jquery/JQueryStatic.d.ts\" />\n\nimport {\n HttpResponseModel,\n ODataHttpClient,\n ODataHttpClientOptions,\n ODataHttpMethods,\n} from \"@odata2ts/http-client-api\";\nimport { BaseHttpClient, BaseRequestConfig } from \"@odata2ts/http-client-base\";\nimport { JQueryClientError } from \"./JQueryClientError\";\nimport { JQueryRequestConfig, mergeConfigs } from \"./JQueryRequestConfig\";\n\nimport jqXHR = JQuery.jqXHR;\n\nexport const DEFAULT_ERROR_MESSAGE = \"No error message!\";\n\ninterface InternalRequestConfig\n extends JQueryRequestConfig,\n Pick<JQuery.AjaxSettings, \"url\" | \"data\" | \"dataType\" | \"method\" | \"xhrFields\"> {}\n\nexport class JQueryClient extends BaseHttpClient<JQueryRequestConfig> implements ODataHttpClient<JQueryRequestConfig> {\n private readonly client: JQueryStatic;\n private readonly config: JQueryRequestConfig;\n\n constructor(jquery: JQueryStatic, config?: JQueryRequestConfig, clientOptions?: ODataHttpClientOptions) {\n super(clientOptions);\n this.client = jquery;\n this.config = config ?? {};\n }\n\n protected mapHeaders(jqXhr: jqXHR): Record<string, string> {\n return jqXhr\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/)\n .reduce((collector: Record<string, string>, line: string) => {\n const parts = line.split(\": \");\n const header = parts.shift();\n const value = parts.join(\": \");\n\n if (header) {\n collector[header.toLowerCase()] = value;\n }\n return collector;\n }, {});\n }\n\n protected async executeRequest<ResponseModel>(\n method: ODataHttpMethods,\n url: string,\n data: any,\n requestConfig?: JQueryRequestConfig,\n internalConfig: BaseRequestConfig = {},\n ): Promise<HttpResponseModel<ResponseModel>> {\n const { headers } = internalConfig;\n const { params, ...mergedConfig } = mergeConfigs(this.config, mergeConfigs({ headers }, requestConfig));\n\n // set core inputs for request\n const resultConfig: InternalRequestConfig = {\n ...mergedConfig,\n method,\n // only an explicitly plain text body is passed through as it is\n data: this.isPlainTextBody(internalConfig.headers) ? data : JSON.stringify(data),\n url,\n };\n\n // apply additional query params to the URL\n if (params && Object.values(params).length) {\n resultConfig.url +=\n (url.match(/\\?/) ? \"&\" : \"?\") +\n // @ts-ignore\n new URLSearchParams(params).toString();\n }\n\n // handling of extra data types: blob and stream (not supported)\n if (internalConfig.dataType === \"blob\") {\n resultConfig.xhrFields = { responseType: \"blob\" };\n } else if (internalConfig.dataType === \"stream\") {\n throw new Error(\"Streaming is not supported by the JqueryClient!\");\n }\n\n // the actual request\n return new Promise((resolve, reject) => {\n this.client.ajax({\n ...resultConfig,\n success: (response: any, textStatus: string, jqXHR: JQuery.jqXHR) => {\n resolve({\n status: jqXHR.status,\n statusText: jqXHR.statusText,\n headers: this.mapHeaders(jqXHR),\n data: response,\n });\n },\n error: (jqXHR: JQuery.jqXHR, textStatus: string, thrownError: string) => {\n const responseMessage = this.retrieveErrorMessage(jqXHR?.responseJSON);\n const failMsg = responseMessage || thrownError || DEFAULT_ERROR_MESSAGE;\n const errorMessage = responseMessage ? \"OData server responded with error: \" + responseMessage : failMsg;\n const responseHeaders = this.mapHeaders(jqXHR);\n reject(new JQueryClientError(errorMessage, jqXHR.status, responseHeaders, new Error(failMsg), jqXHR));\n },\n });\n });\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="jquery/misc" />
2
1
  import { ODataClientError } from "@odata2ts/http-client-api";
3
2
  export declare class JQueryClientError extends Error implements ODataClientError {
4
3
  readonly status: number | undefined;
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeConfigs = void 0;
3
+ exports.mergeConfigs = mergeConfigs;
4
4
  const tslib_1 = require("tslib");
5
5
  function mergeConfigs(config, toMerge) {
6
6
  const _a = config || {}, { headers } = _a, passThrough = tslib_1.__rest(_a, ["headers"]);
7
7
  const _b = toMerge || {}, { headers: headers2 } = _b, passThrough2 = tslib_1.__rest(_b, ["headers"]);
8
8
  return Object.assign(Object.assign(Object.assign({}, passThrough), passThrough2), { headers: Object.assign(Object.assign({}, headers), headers2) });
9
9
  }
10
- exports.mergeConfigs = mergeConfigs;
11
10
  //# sourceMappingURL=JQueryRequestConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JQueryRequestConfig.js","sourceRoot":"","sources":["../src/JQueryRequestConfig.ts"],"names":[],"mappings":";;;;AAMA,SAAgB,YAAY,CAAC,MAA4B,EAAE,OAA6B;IACtF,MAAM,KAA8B,MAAM,IAAI,EAAE,EAA1C,EAAE,OAAO,OAAiC,EAA5B,WAAW,sBAAzB,WAA2B,CAAe,CAAC;IACjD,MAAM,KAAyC,OAAO,IAAI,EAAE,EAAtD,EAAE,OAAO,EAAE,QAAQ,OAAmC,EAA9B,YAAY,sBAApC,WAAsC,CAAgB,CAAC;IAC7D,qDACK,WAAW,GACX,YAAY,KACf,OAAO,kCACF,OAAO,GACP,QAAQ,KAEb;AACJ,CAAC;AAXD,oCAWC","sourcesContent":["import { ODataRequestConfig } from \"@odata2ts/http-client-api\";\n\nexport interface JQueryRequestConfig\n extends ODataRequestConfig,\n Pick<JQuery.AjaxSettings, \"complete\" | \"beforeSend\" | \"statusCode\" | \"timeout\" | \"cache\"> {}\n\nexport function mergeConfigs(config?: JQueryRequestConfig, toMerge?: JQueryRequestConfig): JQueryRequestConfig {\n const { headers, ...passThrough } = config || {};\n const { headers: headers2, ...passThrough2 } = toMerge || {};\n return {\n ...passThrough,\n ...passThrough2,\n headers: {\n ...headers,\n ...headers2,\n },\n };\n}\n"]}
1
+ {"version":3,"file":"JQueryRequestConfig.js","sourceRoot":"","sources":["../src/JQueryRequestConfig.ts"],"names":[],"mappings":";;AAMA,oCAWC;;AAXD,SAAgB,YAAY,CAAC,MAA4B,EAAE,OAA6B;IACtF,MAAM,KAA8B,MAAM,IAAI,EAAE,EAA1C,EAAE,OAAO,OAAiC,EAA5B,WAAW,sBAAzB,WAA2B,CAAe,CAAC;IACjD,MAAM,KAAyC,OAAO,IAAI,EAAE,EAAtD,EAAE,OAAO,EAAE,QAAQ,OAAmC,EAA9B,YAAY,sBAApC,WAAsC,CAAgB,CAAC;IAC7D,qDACK,WAAW,GACX,YAAY,KACf,OAAO,kCACF,OAAO,GACP,QAAQ,KAEb;AACJ,CAAC","sourcesContent":["import { ODataRequestConfig } from \"@odata2ts/http-client-api\";\n\nexport interface JQueryRequestConfig\n extends ODataRequestConfig,\n Pick<JQuery.AjaxSettings, \"complete\" | \"beforeSend\" | \"statusCode\" | \"timeout\" | \"cache\"> {}\n\nexport function mergeConfigs(config?: JQueryRequestConfig, toMerge?: JQueryRequestConfig): JQueryRequestConfig {\n const { headers, ...passThrough } = config || {};\n const { headers: headers2, ...passThrough2 } = toMerge || {};\n return {\n ...passThrough,\n ...passThrough2,\n headers: {\n ...headers,\n ...headers2,\n },\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odata2ts/http-client-jquery",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "JQuery based http client usable by odata2ts",
5
5
  "keywords": [
6
6
  "http client",
@@ -26,19 +26,20 @@
26
26
  "check-circular-deps": "madge ./src --extensions ts --circular",
27
27
  "clean": "rimraf lib coverage",
28
28
  "compile": "tsc",
29
- "unit-test": "vitest run --dir test",
30
29
  "int-test": "vitest run --dir int-test",
31
- "test": "vitest run"
30
+ "test": "vitest run",
31
+ "unit-test": "vitest run --dir test"
32
32
  },
33
33
  "dependencies": {
34
- "@odata2ts/http-client-base": "^0.5.5"
34
+ "@odata2ts/http-client-base": "^0.5.7",
35
+ "tslib": "^2.8.1"
35
36
  },
36
37
  "devDependencies": {
37
- "@types/jquery": "^3.5.16",
38
- "@types/node": "^20.2.5",
39
- "jquery": "^3.6.3",
40
- "rimraf": "^5.0.1",
41
- "typescript": "5.0.4"
38
+ "@types/jquery": "^3.5.34",
39
+ "@types/node": "^24",
40
+ "jquery": "~3.6.4",
41
+ "rimraf": "^6.1.3",
42
+ "typescript": "6.0.3"
42
43
  },
43
44
  "peerDependencies": {
44
45
  "jquery": ">1.0"