node-autotask 0.12.1 → 0.13.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.
Files changed (35) hide show
  1. package/MCP_TOOL_CATALOG.json +4 -3
  2. package/MCP_TOOL_MANIFEST.md +5 -5
  3. package/N8N_MCP_MANIFEST.json +2 -2
  4. package/N8N_MCP_MANIFEST.md +3 -3
  5. package/capabilities.json +1238 -1237
  6. package/dist/capabilities.cjs +2 -2
  7. package/dist/capabilities.js +1 -1
  8. package/dist/{chunk-PGQIGE63.cjs → chunk-CJA6L6NR.cjs} +135 -135
  9. package/dist/{chunk-CSRCMBZ2.cjs → chunk-CXXNONRP.cjs} +1237 -1236
  10. package/dist/{chunk-PPTAMCFA.js → chunk-DDZXN6LN.js} +2 -2
  11. package/dist/{chunk-ZOA5HUFX.js → chunk-IKJLIDK3.js} +1 -1
  12. package/dist/{chunk-IHRXVIUU.cjs → chunk-KB2ANVVR.cjs} +2 -2
  13. package/dist/{chunk-36PG2IU2.cjs → chunk-MTDCLVQQ.cjs} +428 -418
  14. package/dist/{chunk-NACI2NDF.js → chunk-OZD5FQM4.js} +1237 -1236
  15. package/dist/{chunk-P35GFG2H.js → chunk-Y6O5VVQ4.js} +38 -28
  16. package/dist/{index-DZfd9Gt7.d.cts → index-DbMKWnEX.d.cts} +33 -23
  17. package/dist/{index-UilX3PFL.d.ts → index-TuqNq3Ro.d.ts} +33 -23
  18. package/dist/index.cjs +20 -20
  19. package/dist/index.d.cts +2 -2
  20. package/dist/index.d.ts +2 -2
  21. package/dist/index.js +5 -5
  22. package/dist/operations/index.cjs +103 -103
  23. package/dist/operations/index.d.cts +2 -2
  24. package/dist/operations/index.d.ts +2 -2
  25. package/dist/operations/index.js +2 -2
  26. package/dist/pool.cjs +8 -8
  27. package/dist/pool.d.cts +1 -1
  28. package/dist/pool.d.ts +1 -1
  29. package/dist/pool.js +4 -4
  30. package/dist/resources/index.cjs +4 -4
  31. package/dist/resources/index.d.cts +1 -1
  32. package/dist/resources/index.d.ts +1 -1
  33. package/dist/resources/index.js +3 -3
  34. package/docs/API.md +38 -8
  35. package/package.json +1 -1
@@ -33,13 +33,13 @@
33
33
 
34
34
 
35
35
 
36
- var _chunkIHRXVIUUcjs = require('./chunk-IHRXVIUU.cjs');
36
+ var _chunkKB2ANVVRcjs = require('./chunk-KB2ANVVR.cjs');
37
37
 
38
38
 
39
- var _chunkCSRCMBZ2cjs = require('./chunk-CSRCMBZ2.cjs');
39
+ var _chunkCXXNONRPcjs = require('./chunk-CXXNONRP.cjs');
40
40
 
41
41
  // src/resources/appointments.ts
42
- var AppointmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
42
+ var AppointmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
43
43
  constructor(http, pageSize) {
44
44
  super(http, {
45
45
  key: "appointments",
@@ -124,7 +124,7 @@ var AuthenticateResource = class {
124
124
  };
125
125
 
126
126
  // src/resources/billing_codes.ts
127
- var BillingCodesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
127
+ var BillingCodesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
128
128
  constructor(http, pageSize) {
129
129
  super(http, {
130
130
  key: "billing_codes",
@@ -174,7 +174,7 @@ var MAX_LIMIT = 500;
174
174
  function clampWindowLimit(limit) {
175
175
  const n = limit === void 0 ? DEFAULT_LIMIT : Math.trunc(limit);
176
176
  if (!Number.isInteger(n) || n < 1) {
177
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`limit must be an integer >= 1 (got ${String(limit)})`);
177
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`limit must be an integer >= 1 (got ${String(limit)})`);
178
178
  }
179
179
  return Math.min(n, MAX_LIMIT);
180
180
  }
@@ -220,7 +220,7 @@ function wallParts(tz, ms) {
220
220
  }
221
221
  }
222
222
  if (weekday < 0 || [w.y, w.m, w.d, w.h, w.mi, w.s].some((v) => v === void 0 || Number.isNaN(v))) {
223
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`dateWindow: could not read the wall-clock parts for timezone "${tz}" (the Intl format returned an incomplete or unmapped part)`);
223
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`dateWindow: could not read the wall-clock parts for timezone "${tz}" (the Intl format returned an incomplete or unmapped part)`);
224
224
  }
225
225
  return { y: w.y, m: w.m, d: w.d, h: w.h, mi: w.mi, s: w.s, weekday };
226
226
  }
@@ -247,7 +247,7 @@ function localDayEndMs(y, m, d, tz) {
247
247
  }
248
248
  function validateZone(tz, opName = "dateWindow") {
249
249
  if (typeof tz !== "string" || tz.length === 0) {
250
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
250
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
251
251
  `${opName}: tz must be a non-empty IANA timezone string (got ${JSON.stringify(tz)}; e.g. 'Australia/Sydney' \u2014 omitted tz = UTC)`,
252
252
  { operation: opName }
253
253
  );
@@ -255,7 +255,7 @@ function validateZone(tz, opName = "dateWindow") {
255
255
  try {
256
256
  new Intl.DateTimeFormat("en-US", { timeZone: tz });
257
257
  } catch (e2) {
258
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
258
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
259
259
  `${opName}: tz is not a valid IANA timezone (${JSON.stringify(tz)}; e.g. 'Australia/Sydney' \u2014 omitted tz = UTC)`,
260
260
  { operation: opName }
261
261
  );
@@ -407,13 +407,13 @@ async function dateWindowQuery(http, path, field, kind, limit, operation, now, t
407
407
  body: { MaxRecords: limit, filter },
408
408
  operation
409
409
  });
410
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
410
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
411
411
  }
412
412
  var isoUtc = (ms) => new Date(ms).toISOString().slice(0, 19) + "Z";
413
413
  function customRangeDay(value, label, zone, opName) {
414
414
  const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value.trim());
415
415
  if (!m) {
416
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
416
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
417
417
  zone === void 0 ? `${opName}: ${label} must be a UTC 'YYYY-MM-DD' date (got ${JSON.stringify(value)})` : `${opName}: ${label} must be a 'YYYY-MM-DD' local calendar day in ${zone} (got ${JSON.stringify(value)})`,
418
418
  { operation: opName }
419
419
  );
@@ -425,7 +425,7 @@ function customRangeDay(value, label, zone, opName) {
425
425
  const real = probe.getUTCFullYear() === y && probe.getUTCMonth() === mo - 1 && probe.getUTCDate() === d;
426
426
  const ms = !real ? NaN : zone === void 0 ? Date.UTC(y, mo - 1, d) : localDayStartMs(y, mo, d, zone);
427
427
  if (!Number.isFinite(ms)) {
428
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
428
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
429
429
  zone === void 0 ? `${opName}: ${label} is not a valid UTC date (${JSON.stringify(value)})` : `${opName}: ${label} is not a valid calendar day in ${zone} (${JSON.stringify(value)})`,
430
430
  { operation: opName }
431
431
  );
@@ -436,7 +436,7 @@ async function customRangeQuery(http, path, field, from, to, limit, operation, z
436
436
  const fromB = customRangeDay(from, "from", zone, operation);
437
437
  const toB = customRangeDay(to, "to", zone, operation);
438
438
  if (fromB.ms > toB.ms) {
439
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
439
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
440
440
  `${operation}: from (${isoUtc(fromB.ms)}) must not be after to (${isoUtc(toB.ms)})`,
441
441
  { operation }
442
442
  );
@@ -453,7 +453,7 @@ async function customRangeQuery(http, path, field, from, to, limit, operation, z
453
453
  body: { MaxRecords: limit, filter },
454
454
  operation
455
455
  });
456
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
456
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
457
457
  }
458
458
 
459
459
  // src/resources/special/billing_items.ts
@@ -486,7 +486,7 @@ async function customRange(_resource, from, to, http, opts) {
486
486
  }
487
487
 
488
488
  // src/resources/billing_items.ts
489
- var BillingItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
489
+ var BillingItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
490
490
  constructor(http, pageSize) {
491
491
  super(http, {
492
492
  key: "billing_items",
@@ -588,7 +588,7 @@ var BillingItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
588
588
  };
589
589
 
590
590
  // src/resources/change_request_links.ts
591
- var ChangeRequestLinksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
591
+ var ChangeRequestLinksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
592
592
  constructor(http, pageSize) {
593
593
  super(http, {
594
594
  key: "change_request_links",
@@ -642,7 +642,7 @@ var ChangeRequestLinksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
642
642
  };
643
643
 
644
644
  // src/resources/checklist_libraries.ts
645
- var ChecklistLibrariesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
645
+ var ChecklistLibrariesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
646
646
  constructor(http, pageSize) {
647
647
  super(http, {
648
648
  key: "checklist_libraries",
@@ -716,7 +716,7 @@ var ChecklistLibrariesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
716
716
  };
717
717
 
718
718
  // src/resources/checklist_library_checklist_items.ts
719
- var ChecklistLibraryChecklistItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
719
+ var ChecklistLibraryChecklistItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
720
720
  constructor(http, pageSize) {
721
721
  super(http, {
722
722
  key: "checklist_library_checklist_items",
@@ -782,7 +782,7 @@ var ChecklistLibraryChecklistItemsResource = class extends _chunkIHRXVIUUcjs.Bas
782
782
  };
783
783
 
784
784
  // src/resources/classification_icons.ts
785
- var ClassificationIconsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
785
+ var ClassificationIconsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
786
786
  constructor(http, pageSize) {
787
787
  super(http, {
788
788
  key: "classification_icons",
@@ -830,7 +830,7 @@ var DEFAULT_LIMIT2 = 25;
830
830
  var MAX_LIMIT2 = 500;
831
831
  function clampLimit(limit) {
832
832
  const n = limit === void 0 ? DEFAULT_LIMIT2 : Math.trunc(limit);
833
- if (!Number.isInteger(n) || n < 1) throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`limit must be an integer >= 1 (got ${String(limit)})`);
833
+ if (!Number.isInteger(n) || n < 1) throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`limit must be an integer >= 1 (got ${String(limit)})`);
834
834
  return Math.min(n, MAX_LIMIT2);
835
835
  }
836
836
  async function queryCompanies(http, filter, limit) {
@@ -841,7 +841,7 @@ async function queryCompanies(http, filter, limit) {
841
841
  body: { MaxRecords: limit, filter },
842
842
  operation: "companies.searchByDomain"
843
843
  });
844
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
844
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
845
845
  }
846
846
  async function queryContacts(http, filter, limit) {
847
847
  const res = await http.request({
@@ -851,7 +851,7 @@ async function queryContacts(http, filter, limit) {
851
851
  body: { MaxRecords: limit, filter },
852
852
  operation: "companies.searchByDomain"
853
853
  });
854
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
854
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
855
855
  }
856
856
  async function fetchCompanies(http, ids, limit) {
857
857
  const out = [];
@@ -866,7 +866,7 @@ async function fetchCompanies(http, ids, limit) {
866
866
  const item = body && "item" in body ? body.item : null;
867
867
  if (item) out.push(item);
868
868
  } catch (err) {
869
- if (err instanceof _chunkIHRXVIUUcjs.NotFoundError) continue;
869
+ if (err instanceof _chunkKB2ANVVRcjs.NotFoundError) continue;
870
870
  throw err;
871
871
  }
872
872
  }
@@ -874,7 +874,7 @@ async function fetchCompanies(http, ids, limit) {
874
874
  }
875
875
  async function searchByDomain(_resource, domain, opts = {}, http) {
876
876
  const text = domain.trim();
877
- if (text === "") throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("searchByDomain: empty domain");
877
+ if (text === "") throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("searchByDomain: empty domain");
878
878
  const limit = clampLimit(opts.limit);
879
879
  const filter = [{ field: "webAddress", op: "contains", value: text }];
880
880
  const direct = await queryCompanies(http, filter, limit);
@@ -888,7 +888,7 @@ async function searchByIdentity(_resource, identity, opts = {}, http) {
888
888
  const email = _nullishCoalesce(_optionalChain([identity, 'access', _9 => _9.email, 'optionalAccess', _10 => _10.trim, 'call', _11 => _11()]), () => ( ""));
889
889
  const website = _nullishCoalesce(_optionalChain([identity, 'access', _12 => _12.website, 'optionalAccess', _13 => _13.trim, 'call', _14 => _14()]), () => ( ""));
890
890
  if (name === "" && email === "" && website === "") {
891
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("searchByIdentity: at least one of companyName / email / website is required");
891
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("searchByIdentity: at least one of companyName / email / website is required");
892
892
  }
893
893
  const limit = clampLimit(opts.limit);
894
894
  const found = /* @__PURE__ */ new Map();
@@ -915,23 +915,23 @@ async function familyChildPage(http, parentID) {
915
915
  path: "/V1.0/Companies/query",
916
916
  body: {
917
917
  MaxRecords: COMPANIES_FAMILY_CHILD_CAP,
918
- filter: _chunkIHRXVIUUcjs.buildFilter.call(void 0, [{ field: "parentCompanyID", op: "eq", value: parentID }]).filter
918
+ filter: _chunkKB2ANVVRcjs.buildFilter.call(void 0, [{ field: "parentCompanyID", op: "eq", value: parentID }]).filter
919
919
  },
920
920
  operation: "companies.search"
921
921
  });
922
- const { items, pageDetails } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, "companies.search");
922
+ const { items, pageDetails } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, "companies.search");
923
923
  return { rows: items, hasNext: pageDetails.nextPageUrl !== null };
924
924
  }
925
925
  function assertSearchWithDetailOpts(opts) {
926
926
  if (opts === void 0) return;
927
927
  if (typeof opts !== "object" || opts === null || Array.isArray(opts)) {
928
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("companies.searchWithDetail: opts must be an object { limit?: number }", {
928
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("companies.searchWithDetail: opts must be an object { limit?: number }", {
929
929
  operation: "companies.searchWithDetail"
930
930
  });
931
931
  }
932
932
  for (const key of Object.keys(opts)) {
933
933
  if (key !== "limit") {
934
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
934
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
935
935
  `companies.searchWithDetail: unknown opts key "${key}" \u2014 the bag is closed: limit (includeFamily is a companies.search option)`,
936
936
  { operation: "companies.searchWithDetail" }
937
937
  );
@@ -940,32 +940,32 @@ function assertSearchWithDetailOpts(opts) {
940
940
  }
941
941
  async function searchWithFamily(_resource, query, opts = {}, http) {
942
942
  if (opts !== void 0 && (typeof opts !== "object" || opts === null || Array.isArray(opts))) {
943
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("companies.search: opts must be an object { limit?: number, includeFamily?: boolean }");
943
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("companies.search: opts must be an object { limit?: number, includeFamily?: boolean }");
944
944
  }
945
945
  for (const key of Object.keys(_nullishCoalesce(opts, () => ( {})))) {
946
946
  if (!COMPANY_SEARCH_OPT_KEYS.includes(key)) {
947
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
947
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
948
948
  `companies.search: unknown opts key "${key}" \u2014 the bag is closed: ${COMPANY_SEARCH_OPT_KEYS.join(", ")}`,
949
949
  { operation: "companies.search" }
950
950
  );
951
951
  }
952
952
  }
953
953
  if (opts.includeFamily !== void 0 && typeof opts.includeFamily !== "boolean") {
954
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`companies.search: opts.includeFamily must be a boolean (got ${String(opts.includeFamily)})`, {
954
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`companies.search: opts.includeFamily must be a boolean (got ${String(opts.includeFamily)})`, {
955
955
  operation: "companies.search"
956
956
  });
957
957
  }
958
958
  const text = query.trim();
959
- if (text === "") throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("search: empty query", { operation: "companies.search" });
960
- const limit = opts.limit === void 0 ? 25 : _chunkIHRXVIUUcjs.clampPageSize.call(void 0, opts.limit);
959
+ if (text === "") throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("search: empty query", { operation: "companies.search" });
960
+ const limit = opts.limit === void 0 ? 25 : _chunkKB2ANVVRcjs.clampPageSize.call(void 0, opts.limit);
961
961
  const res = await http.request({
962
962
  method: "POST",
963
963
  idempotent: true,
964
964
  path: "/V1.0/Companies/query",
965
- body: { MaxRecords: limit, filter: _chunkIHRXVIUUcjs.buildFilter.call(void 0, [{ field: "companyName", op: "contains", value: text }]).filter },
965
+ body: { MaxRecords: limit, filter: _chunkKB2ANVVRcjs.buildFilter.call(void 0, [{ field: "companyName", op: "contains", value: text }]).filter },
966
966
  operation: "companies.search"
967
967
  });
968
- const hits = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, "companies.search").items;
968
+ const hits = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, "companies.search").items;
969
969
  if (opts.includeFamily !== true) return hits;
970
970
  const rows = [];
971
971
  for (const hit of hits) {
@@ -989,7 +989,7 @@ var DEFAULT_COMPANY_TYPE = 1;
989
989
  var DEDUP_NAME_LIMIT = 10;
990
990
  var BLIND_SURFACE_CAVEAT = "dedup only covers companies this API user can enumerate (the unowned surface is blind); a same-name company outside that scope is not detected";
991
991
  var SAFE_COMPANY_CREATE_DEFAULTS = {};
992
- var OwnerResourceRequiredError = class extends _chunkIHRXVIUUcjs.AutotaskError {
992
+ var OwnerResourceRequiredError = class extends _chunkKB2ANVVRcjs.AutotaskError {
993
993
  constructor(message, options = {}) {
994
994
  super(message, {
995
995
  code: "OWNER_RESOURCE_REQUIRED",
@@ -1000,13 +1000,13 @@ var OwnerResourceRequiredError = class extends _chunkIHRXVIUUcjs.AutotaskError {
1000
1000
  this.name = "OwnerResourceRequiredError";
1001
1001
  }
1002
1002
  };
1003
- var CompanyResourceInvalidError = class extends _chunkIHRXVIUUcjs.AutotaskError {
1003
+ var CompanyResourceInvalidError = class extends _chunkKB2ANVVRcjs.AutotaskError {
1004
1004
  constructor(message, options = {}) {
1005
1005
  super(message, { code: "RESOURCE_INVALID", category: "validation", ...options });
1006
1006
  this.name = "CompanyResourceInvalidError";
1007
1007
  }
1008
1008
  };
1009
- var CompanyCreateFailedError = class extends _chunkIHRXVIUUcjs.AutotaskError {
1009
+ var CompanyCreateFailedError = class extends _chunkKB2ANVVRcjs.AutotaskError {
1010
1010
  /** The vendor-named fields (empty when the 500 body named nothing parseable). */
1011
1011
 
1012
1012
  constructor(message, vendorFields, options = {}) {
@@ -1017,18 +1017,18 @@ var CompanyCreateFailedError = class extends _chunkIHRXVIUUcjs.AutotaskError {
1017
1017
  };
1018
1018
  async function upsertByName(resource, companyName, params, opts, http) {
1019
1019
  if (typeof companyName !== "string" || companyName.trim() === "") {
1020
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("upsertByName: companyName is required (a non-empty string)", { operation: OP_UPSERT_NAME });
1020
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("upsertByName: companyName is required (a non-empty string)", { operation: OP_UPSERT_NAME });
1021
1021
  }
1022
1022
  if (typeof _optionalChain([params, 'optionalAccess', _15 => _15.phone]) !== "string" || params.phone.trim() === "") {
1023
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("upsertByName: params.phone is required (a non-empty string \u2014 the ww29 live-required set is { companyName, companyType, phone, ownerResourceID })", { operation: OP_UPSERT_NAME });
1023
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("upsertByName: params.phone is required (a non-empty string \u2014 the ww29 live-required set is { companyName, companyType, phone, ownerResourceID })", { operation: OP_UPSERT_NAME });
1024
1024
  }
1025
1025
  const companyType = _nullishCoalesce(params.companyType, () => ( DEFAULT_COMPANY_TYPE));
1026
1026
  if (typeof companyType !== "number" || !Number.isSafeInteger(companyType) || companyType < 1) {
1027
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`upsertByName: params.companyType must be a positive integer picklist value (got ${String(params.companyType)}; default 1 \u2014 the ww29-proven value)`, { operation: OP_UPSERT_NAME });
1027
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`upsertByName: params.companyType must be a positive integer picklist value (got ${String(params.companyType)}; default 1 \u2014 the ww29-proven value)`, { operation: OP_UPSERT_NAME });
1028
1028
  }
1029
1029
  const owner = params.ownerResourceID;
1030
1030
  if (owner !== void 0 && (typeof owner !== "number" || !Number.isSafeInteger(owner) || owner < 1)) {
1031
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`upsertByName: params.ownerResourceID must be a positive integer (got ${String(owner)})`, { operation: OP_UPSERT_NAME });
1031
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`upsertByName: params.ownerResourceID must be a positive integer (got ${String(owner)})`, { operation: OP_UPSERT_NAME });
1032
1032
  }
1033
1033
  const q = await resource.queryBounded({ filter: [{ field: "companyName", op: "eq", value: companyName }], limit: DEDUP_NAME_LIMIT });
1034
1034
  const caveat = {
@@ -1039,7 +1039,7 @@ async function upsertByName(resource, companyName, params, opts, http) {
1039
1039
  const match = q.items[0];
1040
1040
  if (match !== void 0) {
1041
1041
  if (opts.dryRun === true) {
1042
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
1042
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
1043
1043
  {
1044
1044
  operation: OP_UPSERT_NAME,
1045
1045
  method: "POST",
@@ -1074,7 +1074,7 @@ async function upsertByName(resource, companyName, params, opts, http) {
1074
1074
  "ownerResourceID is REQUIRED on the apply path (the vendor requires it; the node cannot enumerate candidates \u2014 the resources table is blind to this API user (count/query return 0)): the apply throws the typed OWNER_RESOURCE_REQUIRED if it is still absent"
1075
1075
  );
1076
1076
  }
1077
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
1077
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
1078
1078
  {
1079
1079
  operation: OP_UPSERT_NAME,
1080
1080
  method: "POST",
@@ -1122,8 +1122,8 @@ async function upsertByName(resource, companyName, params, opts, http) {
1122
1122
  sideEffects: ['vendor auto-creates a "Primary Address" location under the new company (UI-only cleanup \u2014 the delete 405 gap, \xA711.5)']
1123
1123
  };
1124
1124
  } catch (err) {
1125
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) throw err;
1126
- const named = (_nullishCoalesce(_chunkIHRXVIUUcjs.parseVendorErrors.call(void 0, err.vendorError), () => ( []))).map((e) => e.field).filter((f) => f !== void 0);
1125
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) throw err;
1126
+ const named = (_nullishCoalesce(_chunkKB2ANVVRcjs.parseVendorErrors.call(void 0, err.vendorError), () => ( []))).map((e) => e.field).filter((f) => f !== void 0);
1127
1127
  const seen = /* @__PURE__ */ new Set();
1128
1128
  const unique = [...named].filter((f) => seen.has(f) ? false : (seen.add(f), true));
1129
1129
  const hasDefault = unique.some((f) => SAFE_COMPANY_CREATE_DEFAULTS[f] !== void 0);
@@ -1137,7 +1137,7 @@ async function upsertByName(resource, companyName, params, opts, http) {
1137
1137
  }
1138
1138
  continue;
1139
1139
  }
1140
- const detail = _chunkIHRXVIUUcjs.formatVendorDetail.call(void 0, err.vendorError);
1140
+ const detail = _chunkKB2ANVVRcjs.formatVendorDetail.call(void 0, err.vendorError);
1141
1141
  throw new CompanyCreateFailedError(
1142
1142
  `upsertByName: the vendor rejected the company create${unique.length > 0 ? ` naming field(s) ${unique.join(", ")}` : ""} (no proven-safe default \u2014 the ww29 required set is fully filled by the node)${detail ? ` \u2014 ${detail}` : ""}`,
1143
1143
  unique,
@@ -1156,7 +1156,7 @@ var PROFILE_PART_LIMIT = 50;
1156
1156
  function profilePartLimit(value, name) {
1157
1157
  const n = value === void 0 ? PROFILE_PART_LIMIT : Math.trunc(value);
1158
1158
  if (!Number.isInteger(n) || n < 1) {
1159
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`fullProfile: ${name} must be an integer >= 1 (got ${String(value)})`);
1159
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`fullProfile: ${name} must be an integer >= 1 (got ${String(value)})`);
1160
1160
  }
1161
1161
  return n;
1162
1162
  }
@@ -1168,14 +1168,14 @@ async function scopedCompanyQuery(http, path, companyID, limit) {
1168
1168
  body: { MaxRecords: limit, filter: [{ field: "companyID", op: "eq", value: companyID }] },
1169
1169
  operation: "companies.fullProfile"
1170
1170
  });
1171
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
1171
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
1172
1172
  }
1173
1173
  async function fullProfile(resource, id, opts = {}, http) {
1174
1174
  const contactLimit = profilePartLimit(opts.contactLimit, "contactLimit");
1175
1175
  const noteLimit = profilePartLimit(opts.noteLimit, "noteLimit");
1176
1176
  const ticketLimit = profilePartLimit(opts.ticketLimit, "ticketLimit");
1177
1177
  const projectLimit = profilePartLimit(opts.projectLimit, "projectLimit");
1178
- const companyID = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
1178
+ const companyID = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
1179
1179
  const company = await resource.get(companyID);
1180
1180
  const locations = await scopedCompanyQuery(http, "/V1.0/CompanyLocations/query", companyID, PROFILE_PART_LIMIT);
1181
1181
  const contacts = await scopedCompanyQuery(http, "/V1.0/Contacts/query", companyID, contactLimit);
@@ -1192,7 +1192,7 @@ async function fullProfile(resource, id, opts = {}, http) {
1192
1192
  },
1193
1193
  operation: "companies.fullProfile"
1194
1194
  });
1195
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
1195
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
1196
1196
  })();
1197
1197
  let openTickets = {
1198
1198
  items: openRows,
@@ -1201,7 +1201,7 @@ async function fullProfile(resource, id, opts = {}, http) {
1201
1201
  note: OPEN_TICKETS_NOTE
1202
1202
  };
1203
1203
  if (openRows.length === 0) {
1204
- const stamp = _chunkIHRXVIUUcjs.blindStampFor.call(void 0, _optionalChain([_chunkIHRXVIUUcjs.BLIND_SURFACE_STAMPS, 'access', _16 => _16["tickets"], 'optionalAccess', _17 => _17.query]), [
1204
+ const stamp = _chunkKB2ANVVRcjs.blindStampFor.call(void 0, _optionalChain([_chunkKB2ANVVRcjs.BLIND_SURFACE_STAMPS, 'access', _16 => _16["tickets"], 'optionalAccess', _17 => _17.query]), [
1205
1205
  { field: "companyID", op: "eq", value: companyID },
1206
1206
  { field: "status", op: "noteq", value: 5 }
1207
1207
  ]);
@@ -1232,7 +1232,7 @@ async function fullProfile(resource, id, opts = {}, http) {
1232
1232
  }
1233
1233
  };
1234
1234
  if (opts.names === true) {
1235
- const builder = _chunkIHRXVIUUcjs.createNamePlan.call(void 0, _chunkIHRXVIUUcjs.TICKET_LABEL_FIELDS);
1235
+ const builder = _chunkKB2ANVVRcjs.createNamePlan.call(void 0, _chunkKB2ANVVRcjs.TICKET_LABEL_FIELDS);
1236
1236
  const c = company;
1237
1237
  builder.addResource(c["ownerResourceID"]);
1238
1238
  builder.addResource(c["createdByResourceID"]);
@@ -1249,20 +1249,20 @@ async function fullProfile(resource, id, opts = {}, http) {
1249
1249
  builder.addResource(r["creatorResourceID"]);
1250
1250
  builder.addFk("contract", r["contractID"]);
1251
1251
  }
1252
- const names = await _chunkIHRXVIUUcjs.resolveCompositeNames.call(void 0, http, builder.plan(), { maxNameReads: opts.maxNameReads });
1252
+ const names = await _chunkKB2ANVVRcjs.resolveCompositeNames.call(void 0, http, builder.plan(), { maxNameReads: opts.maxNameReads });
1253
1253
  const companyRow = { ...company };
1254
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, companyRow, "ownerResourceID", (v) => names.resourceName(v));
1255
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, companyRow, "createdByResourceID", (v) => names.resourceName(v));
1254
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, companyRow, "ownerResourceID", (v) => names.resourceName(v));
1255
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, companyRow, "createdByResourceID", (v) => names.resourceName(v));
1256
1256
  result.company = companyRow;
1257
1257
  result.openTickets = {
1258
1258
  ...openTickets,
1259
1259
  items: openTickets.items.map((row) => {
1260
1260
  const r = { ...row };
1261
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "creatorResourceID", (v) => names.resourceName(v));
1262
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "contractID", (v) => names.recordName("contract", v));
1263
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "billingCodeID", (v) => names.recordName("billingCode", v));
1264
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "assignedResourceRoleID", (v) => names.recordName("role", v));
1265
- for (const f of _chunkIHRXVIUUcjs.TICKET_LABEL_FIELDS) _chunkIHRXVIUUcjs.addLabelSibling.call(void 0, r, f, names);
1261
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "creatorResourceID", (v) => names.resourceName(v));
1262
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "contractID", (v) => names.recordName("contract", v));
1263
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "billingCodeID", (v) => names.recordName("billingCode", v));
1264
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "assignedResourceRoleID", (v) => names.recordName("role", v));
1265
+ for (const f of _chunkKB2ANVVRcjs.TICKET_LABEL_FIELDS) _chunkKB2ANVVRcjs.addLabelSibling.call(void 0, r, f, names);
1266
1266
  return r;
1267
1267
  })
1268
1268
  };
@@ -1270,9 +1270,9 @@ async function fullProfile(resource, id, opts = {}, http) {
1270
1270
  ...result.projects,
1271
1271
  items: result.projects.items.map((row) => {
1272
1272
  const r = { ...row };
1273
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "projectLeadResourceID", (v) => names.resourceName(v));
1274
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "creatorResourceID", (v) => names.resourceName(v));
1275
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, r, "contractID", (v) => names.recordName("contract", v));
1273
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "projectLeadResourceID", (v) => names.resourceName(v));
1274
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "creatorResourceID", (v) => names.resourceName(v));
1275
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, r, "contractID", (v) => names.recordName("contract", v));
1276
1276
  return r;
1277
1277
  })
1278
1278
  };
@@ -1304,7 +1304,7 @@ function isDateYMD(v) {
1304
1304
  }
1305
1305
  function validateUnbilledWorkOptions(companyId, opts) {
1306
1306
  if (opts !== void 0 && (typeof opts !== "object" || opts === null || Array.isArray(opts))) {
1307
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
1307
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
1308
1308
  `unbilledWork: opts must be the options object (got ${Array.isArray(opts) ? "an array" : typeof opts})`,
1309
1309
  { operation: "companies.unbilledWork" }
1310
1310
  );
@@ -1333,7 +1333,7 @@ function validateUnbilledWorkOptions(companyId, opts) {
1333
1333
  try {
1334
1334
  limit = clampLimit(opts.limit);
1335
1335
  } catch (err) {
1336
- problems.push(err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.message : `limit must be an integer >= 1 (got ${String(opts.limit)})`);
1336
+ problems.push(err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.message : `limit must be an integer >= 1 (got ${String(opts.limit)})`);
1337
1337
  limit = 50;
1338
1338
  }
1339
1339
  if (source === "date_range") {
@@ -1348,9 +1348,9 @@ function validateUnbilledWorkOptions(companyId, opts) {
1348
1348
  problems.push('invoiceId is required (the vendor invoice id) when source is "invoice"');
1349
1349
  } else {
1350
1350
  try {
1351
- _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, opts.invoiceId, "opts.invoiceId");
1351
+ _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, opts.invoiceId, "opts.invoiceId");
1352
1352
  } catch (err) {
1353
- problems.push(err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.message : "invoiceId must be a vendor numeric id");
1353
+ problems.push(err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.message : "invoiceId must be a vendor numeric id");
1354
1354
  }
1355
1355
  }
1356
1356
  }
@@ -1360,20 +1360,20 @@ function validateUnbilledWorkOptions(companyId, opts) {
1360
1360
  } else {
1361
1361
  opts.ticketIds.forEach((tid, i) => {
1362
1362
  try {
1363
- _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, tid, `opts.ticketIds[${i}]`);
1363
+ _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, tid, `opts.ticketIds[${i}]`);
1364
1364
  } catch (err) {
1365
- problems.push(err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.message : `ticketIds[${i}] must be a vendor numeric id`);
1365
+ problems.push(err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.message : `ticketIds[${i}] must be a vendor numeric id`);
1366
1366
  }
1367
1367
  });
1368
1368
  }
1369
1369
  }
1370
1370
  try {
1371
- _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, companyId, "companyId");
1371
+ _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, companyId, "companyId");
1372
1372
  } catch (err) {
1373
- problems.push(err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.message : "companyId must be a vendor numeric id");
1373
+ problems.push(err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.message : "companyId must be a vendor numeric id");
1374
1374
  }
1375
1375
  if (problems.length > 0) {
1376
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
1376
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
1377
1377
  `unbilledWork: ${problems.length} problem(s) found pre-request (zero wire was issued)
1378
1378
  - ` + problems.join("\n- "),
1379
1379
  { operation: "companies.unbilledWork" }
@@ -1402,7 +1402,7 @@ async function boundedPart(http, path, conditions, limit, includeFields) {
1402
1402
  body,
1403
1403
  operation: "companies.unbilledWork"
1404
1404
  });
1405
- const { items, pageDetails } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, "companies.unbilledWork");
1405
+ const { items, pageDetails } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, "companies.unbilledWork");
1406
1406
  const capped = items.length >= limit;
1407
1407
  return { items, capped, hasMore: capped && pageDetails.nextPageUrl != null };
1408
1408
  }
@@ -1413,7 +1413,7 @@ function capJoinSet(ids, cap) {
1413
1413
  }
1414
1414
  function unbilledWorkPartStatus(key, conditions, items) {
1415
1415
  if (items.length !== 0) return { status: "ok" };
1416
- const stamp = _chunkIHRXVIUUcjs.blindStampFor.call(void 0, _optionalChain([_chunkIHRXVIUUcjs.BLIND_SURFACE_STAMPS, 'access', _18 => _18[key], 'optionalAccess', _19 => _19.query]), conditions);
1416
+ const stamp = _chunkKB2ANVVRcjs.blindStampFor.call(void 0, _optionalChain([_chunkKB2ANVVRcjs.BLIND_SURFACE_STAMPS, 'access', _18 => _18[key], 'optionalAccess', _19 => _19.query]), conditions);
1417
1417
  if (stamp !== void 0) return { status: "blind", blindSurface: stamp, note: stamp.note };
1418
1418
  return {
1419
1419
  status: "ok",
@@ -1422,7 +1422,7 @@ function unbilledWorkPartStatus(key, conditions, items) {
1422
1422
  }
1423
1423
  async function unbilledWork(resource, companyId, opts = {}, http) {
1424
1424
  const v = validateUnbilledWorkOptions(companyId, opts);
1425
- const id = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, companyId, "companyId");
1425
+ const id = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, companyId, "companyId");
1426
1426
  const company = await resource.get(id);
1427
1427
  const companyIds = [num(company.id)];
1428
1428
  let parent = null;
@@ -1435,7 +1435,7 @@ async function unbilledWork(resource, companyId, opts = {}, http) {
1435
1435
  parentStatus = "ok";
1436
1436
  companyIds.push(num(parent.id));
1437
1437
  } catch (err) {
1438
- if (err instanceof _chunkIHRXVIUUcjs.NotFoundError) parent = null;
1438
+ if (err instanceof _chunkKB2ANVVRcjs.NotFoundError) parent = null;
1439
1439
  else throw err;
1440
1440
  }
1441
1441
  }
@@ -1467,7 +1467,7 @@ async function unbilledWork(resource, companyId, opts = {}, http) {
1467
1467
  if (v.dateFrom !== void 0) billingConditions.push({ field: "itemDate", op: "gte", value: v.dateFrom });
1468
1468
  if (v.dateTo !== void 0) billingConditions.push({ field: "itemDate", op: "lte", value: v.dateTo });
1469
1469
  }
1470
- const billingFields = _chunkIHRXVIUUcjs.resolveFieldsPreset.call(void 0, "billing_join", "billing_items");
1470
+ const billingFields = _chunkKB2ANVVRcjs.resolveFieldsPreset.call(void 0, "billing_join", "billing_items");
1471
1471
  const billingIncludeFields = [...billingFields, "id", ...v.includeNotes ? ["description"] : []];
1472
1472
  const billingRaw = await boundedPart(http, "/V1.0/BillingItems/query", billingConditions, v.limit, billingIncludeFields);
1473
1473
  const taskCap = capJoinSet(taskIds, UNBILLED_WORK_JOIN_SET_CAP);
@@ -1499,7 +1499,7 @@ async function unbilledWork(resource, companyId, opts = {}, http) {
1499
1499
  let cappedItems = entries;
1500
1500
  let noteCharsTruncated = 0;
1501
1501
  if (v.includeNotes) {
1502
- [cappedItems, noteCharsTruncated] = _chunkIHRXVIUUcjs.truncateNoteChars.call(void 0, entries, v.noteChars, ["summaryNotes"]);
1502
+ [cappedItems, noteCharsTruncated] = _chunkKB2ANVVRcjs.truncateNoteChars.call(void 0, entries, v.noteChars, ["summaryNotes"]);
1503
1503
  }
1504
1504
  const st = unbilledWorkPartStatus("time_entries", timeConditions, entries);
1505
1505
  timePart = {
@@ -1514,8 +1514,8 @@ async function unbilledWork(resource, companyId, opts = {}, http) {
1514
1514
  let billingItems = billingRaw.items;
1515
1515
  let billingNoteCharsTruncated = 0;
1516
1516
  if (v.includeNotes) {
1517
- const noteFields = (_nullishCoalesce(_chunkIHRXVIUUcjs.UNTRUSTED_FIELDS_BY_RESOURCE["billing_items"], () => ( []))).filter((f) => billingIncludeFields.includes(f));
1518
- [billingItems, billingNoteCharsTruncated] = _chunkIHRXVIUUcjs.truncateNoteChars.call(void 0, billingRaw.items, v.noteChars, noteFields);
1517
+ const noteFields = (_nullishCoalesce(_chunkKB2ANVVRcjs.UNTRUSTED_FIELDS_BY_RESOURCE["billing_items"], () => ( []))).filter((f) => billingIncludeFields.includes(f));
1518
+ [billingItems, billingNoteCharsTruncated] = _chunkKB2ANVVRcjs.truncateNoteChars.call(void 0, billingRaw.items, v.noteChars, noteFields);
1519
1519
  }
1520
1520
  const billingSt = unbilledWorkPartStatus("billing_items", billingConditions, billingRaw.items);
1521
1521
  const billingItemsPart = {
@@ -1612,7 +1612,7 @@ async function unbilledWork(resource, companyId, opts = {}, http) {
1612
1612
  }
1613
1613
 
1614
1614
  // src/resources/companies.ts
1615
- var CompaniesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1615
+ var CompaniesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
1616
1616
  constructor(http, pageSize) {
1617
1617
  super(http, {
1618
1618
  key: "companies",
@@ -1719,7 +1719,7 @@ var CompaniesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1719
1719
  };
1720
1720
 
1721
1721
  // src/resources/company_alerts.ts
1722
- var CompanyAlertsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1722
+ var CompanyAlertsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
1723
1723
  constructor(http, pageSize) {
1724
1724
  super(http, {
1725
1725
  key: "company_alerts",
@@ -1785,7 +1785,7 @@ var CompanyAlertsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1785
1785
  };
1786
1786
 
1787
1787
  // src/resources/company_locations.ts
1788
- var CompanyLocationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1788
+ var CompanyLocationsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
1789
1789
  constructor(http, pageSize) {
1790
1790
  super(http, {
1791
1791
  key: "company_locations",
@@ -1856,7 +1856,7 @@ var CompanyLocationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1856
1856
  };
1857
1857
 
1858
1858
  // src/resources/company_notes.ts
1859
- var CompanyNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1859
+ var CompanyNotesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
1860
1860
  constructor(http, pageSize) {
1861
1861
  super(http, {
1862
1862
  key: "company_notes",
@@ -1921,7 +1921,7 @@ var CompanyNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1921
1921
  };
1922
1922
 
1923
1923
  // src/resources/company_site_configurations.ts
1924
- var CompanySiteConfigurationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1924
+ var CompanySiteConfigurationsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
1925
1925
  constructor(http, pageSize) {
1926
1926
  super(http, {
1927
1927
  key: "company_site_configurations",
@@ -1972,7 +1972,7 @@ var CompanySiteConfigurationsResource = class extends _chunkIHRXVIUUcjs.BaseReso
1972
1972
  };
1973
1973
 
1974
1974
  // src/resources/company_webhooks.ts
1975
- var CompanyWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
1975
+ var CompanyWebhooksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
1976
1976
  constructor(http, pageSize) {
1977
1977
  super(http, {
1978
1978
  key: "company_webhooks",
@@ -2048,7 +2048,7 @@ var CompanyWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2048
2048
  };
2049
2049
 
2050
2050
  // src/resources/configuration_item_billing_product_associations.ts
2051
- var ConfigurationItemBillingProductAssociationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2051
+ var ConfigurationItemBillingProductAssociationsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2052
2052
  constructor(http, pageSize) {
2053
2053
  super(http, {
2054
2054
  key: "configuration_item_billing_product_associations",
@@ -2114,7 +2114,7 @@ var ConfigurationItemBillingProductAssociationsResource = class extends _chunkIH
2114
2114
  };
2115
2115
 
2116
2116
  // src/resources/configuration_item_categories.ts
2117
- var ConfigurationItemCategoriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2117
+ var ConfigurationItemCategoriesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2118
2118
  constructor(http, pageSize) {
2119
2119
  super(http, {
2120
2120
  key: "configuration_item_categories",
@@ -2181,7 +2181,7 @@ var ConfigurationItemCategoriesResource = class extends _chunkIHRXVIUUcjs.BaseRe
2181
2181
  };
2182
2182
 
2183
2183
  // src/resources/configuration_item_category_udf_associations.ts
2184
- var ConfigurationItemCategoryUdfAssociationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2184
+ var ConfigurationItemCategoryUdfAssociationsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2185
2185
  constructor(http, pageSize) {
2186
2186
  super(http, {
2187
2187
  key: "configuration_item_category_udf_associations",
@@ -2247,7 +2247,7 @@ var ConfigurationItemCategoryUdfAssociationsResource = class extends _chunkIHRXV
2247
2247
  };
2248
2248
 
2249
2249
  // src/resources/configuration_item_dns_records.ts
2250
- var ConfigurationItemDnsRecordsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2250
+ var ConfigurationItemDnsRecordsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2251
2251
  constructor(http, pageSize) {
2252
2252
  super(http, {
2253
2253
  key: "configuration_item_dns_records",
@@ -2296,7 +2296,7 @@ var ConfigurationItemDnsRecordsResource = class extends _chunkIHRXVIUUcjs.BaseRe
2296
2296
  };
2297
2297
 
2298
2298
  // src/resources/configuration_item_notes.ts
2299
- var ConfigurationItemNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2299
+ var ConfigurationItemNotesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2300
2300
  constructor(http, pageSize) {
2301
2301
  super(http, {
2302
2302
  key: "configuration_item_notes",
@@ -2355,7 +2355,7 @@ var ConfigurationItemNotesResource = class extends _chunkIHRXVIUUcjs.BaseResourc
2355
2355
  };
2356
2356
 
2357
2357
  // src/resources/configuration_item_related_items.ts
2358
- var ConfigurationItemRelatedItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2358
+ var ConfigurationItemRelatedItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2359
2359
  constructor(http, pageSize) {
2360
2360
  super(http, {
2361
2361
  key: "configuration_item_related_items",
@@ -2416,16 +2416,16 @@ async function fetchRecord(http, path, label) {
2416
2416
  const res = await http.request({ method: "GET", path, operation: "configuration_items.moveConfigurationItem" });
2417
2417
  const body = res;
2418
2418
  if (body === null || !("item" in body) || body.item === null || body.item === void 0) {
2419
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`${label} not found`, { code: "NOT_FOUND", category: "not_found" });
2419
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`${label} not found`, { code: "NOT_FOUND", category: "not_found" });
2420
2420
  }
2421
2421
  return body.item;
2422
2422
  }
2423
2423
  async function moveConfigurationItem(_resource, sourceId, opts, http) {
2424
- const numericSource = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, sourceId, "sourceId");
2424
+ const numericSource = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, sourceId, "sourceId");
2425
2425
  if (_optionalChain([opts, 'optionalAccess', _20 => _20.destinationCompanyId]) === void 0) {
2426
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("moveConfigurationItem: destinationCompanyId is required");
2426
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("moveConfigurationItem: destinationCompanyId is required");
2427
2427
  }
2428
- const destId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, opts.destinationCompanyId, "destinationCompanyId");
2428
+ const destId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, opts.destinationCompanyId, "destinationCompanyId");
2429
2429
  const source = await fetchRecord(http, `/V1.0/ConfigurationItems/${numericSource}`, `Configuration item ${numericSource}`);
2430
2430
  await fetchRecord(http, `/V1.0/Companies/${destId}`, `Company ${destId}`);
2431
2431
  const body = { ...source };
@@ -2435,20 +2435,20 @@ async function moveConfigurationItem(_resource, sourceId, opts, http) {
2435
2435
  body.companyID = destId;
2436
2436
  body.isActive = true;
2437
2437
  if (opts.newReferenceTitle !== void 0) {
2438
- if (opts.newReferenceTitle.trim() === "") throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("moveConfigurationItem: newReferenceTitle must be non-empty");
2438
+ if (opts.newReferenceTitle.trim() === "") throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("moveConfigurationItem: newReferenceTitle must be non-empty");
2439
2439
  body.referenceTitle = opts.newReferenceTitle.trim();
2440
2440
  }
2441
2441
  if (opts.lastModifiedDate !== void 0) {
2442
2442
  const current = source.lastModifiedDate;
2443
2443
  if (current !== opts.lastModifiedDate) {
2444
- throw new (0, _chunkIHRXVIUUcjs.StaleObjectError)(
2444
+ throw new (0, _chunkKB2ANVVRcjs.StaleObjectError)(
2445
2445
  `moveConfigurationItem: source item ${numericSource} was modified since the snapshot (expected lastModifiedDate ${opts.lastModifiedDate}, current ${_nullishCoalesce(current, () => ( "unknown"))})`,
2446
2446
  { operation: "configuration_items.moveConfigurationItem", resourceIds: [numericSource] }
2447
2447
  );
2448
2448
  }
2449
2449
  }
2450
2450
  if (opts.dryRun === true) {
2451
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
2451
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
2452
2452
  operation: "configuration_items.moveConfigurationItem",
2453
2453
  method: "POST",
2454
2454
  path: "/V1.0/ConfigurationItems",
@@ -2472,7 +2472,7 @@ async function moveConfigurationItem(_resource, sourceId, opts, http) {
2472
2472
  const createdBody = created;
2473
2473
  const newId = createdBody !== null ? _nullishCoalesce(createdBody.itemId, () => ( createdBody.id)) : void 0;
2474
2474
  if (typeof newId !== "number") {
2475
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("moveConfigurationItem: vendor create response has no itemId");
2475
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("moveConfigurationItem: vendor create response has no itemId");
2476
2476
  }
2477
2477
  let sourceDeactivated = false;
2478
2478
  if (opts.deactivateSource !== false) {
@@ -2490,7 +2490,7 @@ var PROFILE_PART_LIMIT2 = 50;
2490
2490
  function profilePartLimit2(value, name) {
2491
2491
  const n = value === void 0 ? PROFILE_PART_LIMIT2 : Math.trunc(value);
2492
2492
  if (!Number.isInteger(n) || n < 1) {
2493
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`profile: ${name} must be an integer >= 1 (got ${String(value)})`);
2493
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`profile: ${name} must be an integer >= 1 (got ${String(value)})`);
2494
2494
  }
2495
2495
  return n;
2496
2496
  }
@@ -2506,14 +2506,14 @@ async function contextFetchPart(http, entityPath, referenceId) {
2506
2506
  });
2507
2507
  const body = res;
2508
2508
  if (body === null || !("item" in body)) {
2509
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`context part not found (unexpected envelope shape)`, { resourceIds: [referenceId] });
2509
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`context part not found (unexpected envelope shape)`, { resourceIds: [referenceId] });
2510
2510
  }
2511
2511
  if (body.item === null || body.item === void 0) {
2512
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)("context part not found", { resourceIds: [referenceId] });
2512
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)("context part not found", { resourceIds: [referenceId] });
2513
2513
  }
2514
2514
  return body.item;
2515
2515
  } catch (err) {
2516
- if (err instanceof _chunkIHRXVIUUcjs.NotFoundError) return null;
2516
+ if (err instanceof _chunkKB2ANVVRcjs.NotFoundError) return null;
2517
2517
  throw err;
2518
2518
  }
2519
2519
  }
@@ -2525,7 +2525,7 @@ async function ciScopedQuery(http, path, itemID, limit) {
2525
2525
  body: { MaxRecords: limit, filter: [{ field: "configurationItemID", op: "eq", value: itemID }] },
2526
2526
  operation: "configuration_items.profile"
2527
2527
  });
2528
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
2528
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
2529
2529
  }
2530
2530
  async function profile(resource, id, opts = {}, http) {
2531
2531
  const noteLimit = profilePartLimit2(opts.noteLimit, "noteLimit");
@@ -2537,7 +2537,7 @@ async function profile(resource, id, opts = {}, http) {
2537
2537
  const notes = await ciScopedQuery(http, "/V1.0/ConfigurationItemNotes/query", id, noteLimit);
2538
2538
  const relatedItems = await ciScopedQuery(http, "/V1.0/ConfigurationItemRelatedItems/query", id, relatedLimit);
2539
2539
  const associations = await ciScopedQuery(http, "/V1.0/ConfigurationItemBillingProductAssociations/query", id, PROFILE_PART_LIMIT2);
2540
- const wallQuirk = _optionalChain([_chunkIHRXVIUUcjs.RELATIONSHIP_MAP, 'access', _21 => _21["configuration_items"], 'optionalAccess', _22 => _22.zoneFacts, 'optionalAccess', _23 => _23.quirks, 'optionalAccess', _24 => _24.find, 'call', _25 => _25((q) => q.startsWith("product wall"))]);
2540
+ const wallQuirk = _optionalChain([_chunkKB2ANVVRcjs.RELATIONSHIP_MAP, 'access', _21 => _21["configuration_items"], 'optionalAccess', _22 => _22.zoneFacts, 'optionalAccess', _23 => _23.quirks, 'optionalAccess', _24 => _24.find, 'call', _25 => _25((q) => q.startsWith("product wall"))]);
2541
2541
  const productAssociations = {
2542
2542
  items: associations,
2543
2543
  capped: associations.length >= PROFILE_PART_LIMIT2,
@@ -2561,11 +2561,11 @@ async function profile(resource, id, opts = {}, http) {
2561
2561
  }
2562
2562
  };
2563
2563
  if (opts.names === true) {
2564
- const builder = _chunkIHRXVIUUcjs.createNamePlan.call(void 0, );
2564
+ const builder = _chunkKB2ANVVRcjs.createNamePlan.call(void 0, );
2565
2565
  builder.addFk("contract", root["contractID"]);
2566
- const names = await _chunkIHRXVIUUcjs.resolveCompositeNames.call(void 0, http, builder.plan(), { maxNameReads: opts.maxNameReads });
2566
+ const names = await _chunkKB2ANVVRcjs.resolveCompositeNames.call(void 0, http, builder.plan(), { maxNameReads: opts.maxNameReads });
2567
2567
  const ciRow = { ...ci };
2568
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, ciRow, "contractID", (v) => names.recordName("contract", v));
2568
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, ciRow, "contractID", (v) => names.recordName("contract", v));
2569
2569
  result.ci = ciRow;
2570
2570
  result.names = names.section;
2571
2571
  }
@@ -2573,7 +2573,7 @@ async function profile(resource, id, opts = {}, http) {
2573
2573
  }
2574
2574
 
2575
2575
  // src/resources/configuration_items.ts
2576
- var ConfigurationItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2576
+ var ConfigurationItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2577
2577
  constructor(http, pageSize) {
2578
2578
  super(http, {
2579
2579
  key: "configuration_items",
@@ -2662,7 +2662,7 @@ var ConfigurationItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2662
2662
  };
2663
2663
 
2664
2664
  // src/resources/configuration_item_ssl_subject_alternative_names.ts
2665
- var ConfigurationItemSslSubjectAlternativeNamesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2665
+ var ConfigurationItemSslSubjectAlternativeNamesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2666
2666
  constructor(http, pageSize) {
2667
2667
  super(http, {
2668
2668
  key: "configuration_item_ssl_subject_alternative_names",
@@ -2725,7 +2725,7 @@ var ConfigurationItemSslSubjectAlternativeNamesResource = class extends _chunkIH
2725
2725
  };
2726
2726
 
2727
2727
  // src/resources/configuration_item_types.ts
2728
- var ConfigurationItemTypesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2728
+ var ConfigurationItemTypesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2729
2729
  constructor(http, pageSize) {
2730
2730
  super(http, {
2731
2731
  key: "configuration_item_types",
@@ -2799,7 +2799,7 @@ var ConfigurationItemTypesResource = class extends _chunkIHRXVIUUcjs.BaseResourc
2799
2799
  };
2800
2800
 
2801
2801
  // src/resources/configuration_item_webhooks.ts
2802
- var ConfigurationItemWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2802
+ var ConfigurationItemWebhooksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2803
2803
  constructor(http, pageSize) {
2804
2804
  super(http, {
2805
2805
  key: "configuration_item_webhooks",
@@ -2875,7 +2875,7 @@ var ConfigurationItemWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseReso
2875
2875
  };
2876
2876
 
2877
2877
  // src/resources/contact_group_contacts.ts
2878
- var ContactGroupContactsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2878
+ var ContactGroupContactsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2879
2879
  constructor(http, pageSize) {
2880
2880
  super(http, {
2881
2881
  key: "contact_group_contacts",
@@ -2929,7 +2929,7 @@ var ContactGroupContactsResource = class extends _chunkIHRXVIUUcjs.BaseResource
2929
2929
  };
2930
2930
 
2931
2931
  // src/resources/contact_groups.ts
2932
- var ContactGroupsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
2932
+ var ContactGroupsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
2933
2933
  constructor(http, pageSize) {
2934
2934
  super(http, {
2935
2935
  key: "contact_groups",
@@ -3007,22 +3007,22 @@ async function fetchRecord2(http, path, label) {
3007
3007
  const res = await http.request({ method: "GET", path, operation: "contacts.moveToCompany" });
3008
3008
  const body = res;
3009
3009
  if (body === null || !("item" in body) || body.item === null || body.item === void 0) {
3010
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`${label} not found`, { code: "NOT_FOUND", category: "not_found" });
3010
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`${label} not found`, { code: "NOT_FOUND", category: "not_found" });
3011
3011
  }
3012
3012
  return body.item;
3013
3013
  }
3014
3014
  async function moveToCompany(_resource, sourceContactId, destinationCompanyId, opts = {}, http) {
3015
- const sourceId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, sourceContactId, "sourceContactId");
3016
- const destId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, destinationCompanyId, "destinationCompanyId");
3015
+ const sourceId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, sourceContactId, "sourceContactId");
3016
+ const destId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, destinationCompanyId, "destinationCompanyId");
3017
3017
  const source = await fetchRecord2(http, `/V1.0/Contacts/${sourceId}`, `Contact ${sourceId}`);
3018
3018
  const companyID = source.companyID;
3019
3019
  if (typeof companyID !== "number" || companyID < 0) {
3020
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`Contact ${sourceId} has no companyID (cannot scope the source delete)`);
3020
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`Contact ${sourceId} has no companyID (cannot scope the source delete)`);
3021
3021
  }
3022
3022
  if (opts.lastModifiedDate !== void 0) {
3023
3023
  const current = source.lastModifiedDate;
3024
3024
  if (current !== opts.lastModifiedDate) {
3025
- throw new (0, _chunkIHRXVIUUcjs.StaleObjectError)(
3025
+ throw new (0, _chunkKB2ANVVRcjs.StaleObjectError)(
3026
3026
  `moveToCompany: source contact ${sourceId} was modified since the snapshot (expected lastModifiedDate ${opts.lastModifiedDate}, current ${typeof current === "string" ? current : "unknown"})`,
3027
3027
  { operation: "contacts.moveToCompany", resourceIds: [sourceId, destId] }
3028
3028
  );
@@ -3044,10 +3044,10 @@ async function moveToCompany(_resource, sourceContactId, destinationCompanyId, o
3044
3044
  },
3045
3045
  operation: "contacts.moveToCompany"
3046
3046
  });
3047
- const items = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
3047
+ const items = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
3048
3048
  const clash = items.find((c) => String(c.id) !== String(sourceId));
3049
3049
  if (clash !== void 0) {
3050
- throw new (0, _chunkIHRXVIUUcjs.ConflictError)(
3050
+ throw new (0, _chunkKB2ANVVRcjs.ConflictError)(
3051
3051
  `Contact email "${email}" already exists under company ${destId} (contact ${String(clash.id)}); aborting the move`,
3052
3052
  { resourceIds: [sourceId, destId] }
3053
3053
  );
@@ -3061,7 +3061,7 @@ async function moveToCompany(_resource, sourceContactId, destinationCompanyId, o
3061
3061
  if (opts.dryRun === true) {
3062
3062
  const warnings = [];
3063
3063
  if (opts.deleteSource === true) warnings.push("the source contact will be deleted after the move");
3064
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
3064
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
3065
3065
  operation: "contacts.moveToCompany",
3066
3066
  method: "POST",
3067
3067
  path: `/V1.0/Companies/${destId}/Contacts`,
@@ -3086,7 +3086,7 @@ async function moveToCompany(_resource, sourceContactId, destinationCompanyId, o
3086
3086
  const createdBody = created;
3087
3087
  const newId = createdBody !== null ? _nullishCoalesce(createdBody.itemId, () => ( createdBody.id)) : void 0;
3088
3088
  if (typeof newId !== "number") {
3089
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("contacts.moveToCompany: vendor create response has no itemId");
3089
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("contacts.moveToCompany: vendor create response has no itemId");
3090
3090
  }
3091
3091
  let sourceDeleted = false;
3092
3092
  if (opts.deleteSource === true) {
@@ -3104,7 +3104,7 @@ var UPSERT_MAX_DISCOVERY_MERGES = 3;
3104
3104
  var EMAIL_SHAPE = /^.+@.+/;
3105
3105
  var SAFE_CONTACT_CREATE_DEFAULTS = {};
3106
3106
  var DEDUP_LIMIT = 10;
3107
- var CompanyNotFoundError = class extends _chunkIHRXVIUUcjs.AutotaskError {
3107
+ var CompanyNotFoundError = class extends _chunkKB2ANVVRcjs.AutotaskError {
3108
3108
  constructor(message, options = {}) {
3109
3109
  super(message, {
3110
3110
  code: "COMPANY_NOT_FOUND",
@@ -3115,7 +3115,7 @@ var CompanyNotFoundError = class extends _chunkIHRXVIUUcjs.AutotaskError {
3115
3115
  this.name = "CompanyNotFoundError";
3116
3116
  }
3117
3117
  };
3118
- var ContactCreateFailedError = class extends _chunkIHRXVIUUcjs.AutotaskError {
3118
+ var ContactCreateFailedError = class extends _chunkKB2ANVVRcjs.AutotaskError {
3119
3119
  /** The vendor-named fields (empty when the 500 body named nothing parseable). */
3120
3120
 
3121
3121
  constructor(message, vendorFields, options = {}) {
@@ -3125,25 +3125,25 @@ var ContactCreateFailedError = class extends _chunkIHRXVIUUcjs.AutotaskError {
3125
3125
  }
3126
3126
  };
3127
3127
  async function upsertByEmail(resource, companyID, email, extra, opts, http) {
3128
- const cid = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, companyID, "companyID");
3128
+ const cid = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, companyID, "companyID");
3129
3129
  if (typeof email !== "string" || !EMAIL_SHAPE.test(email)) {
3130
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
3130
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
3131
3131
  `upsertByEmail: email must be a non-empty string with the @ shape (a non-empty local part + a non-empty domain; got ${JSON.stringify(email)})`,
3132
3132
  { operation: OP_UPSERT_EMAIL }
3133
3133
  );
3134
3134
  }
3135
3135
  if (extra !== void 0) {
3136
3136
  if (extra.isActive !== void 0 && typeof extra.isActive !== "boolean" && extra.isActive !== 0 && extra.isActive !== 1) {
3137
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
3137
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
3138
3138
  `upsertByEmail: extra.isActive must be a boolean (mapped to the zone-correct number 1/0) or a raw 0/1 number (got ${String(extra.isActive)})`,
3139
3139
  { operation: OP_UPSERT_EMAIL }
3140
3140
  );
3141
3141
  }
3142
3142
  if (extra.firstName !== void 0 && (typeof extra.firstName !== "string" || extra.firstName === "")) {
3143
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("upsertByEmail: extra.firstName must be a non-empty string (or omitted \u2014 the node defaults it to the email local-part)", { operation: OP_UPSERT_EMAIL });
3143
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("upsertByEmail: extra.firstName must be a non-empty string (or omitted \u2014 the node defaults it to the email local-part)", { operation: OP_UPSERT_EMAIL });
3144
3144
  }
3145
3145
  if (extra.lastName !== void 0 && typeof extra.lastName !== "string") {
3146
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("upsertByEmail: extra.lastName must be a string (or omitted \u2014 the node defaults it to the non-empty neutral value Unknown)", { operation: OP_UPSERT_EMAIL });
3146
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("upsertByEmail: extra.lastName must be a string (or omitted \u2014 the node defaults it to the non-empty neutral value Unknown)", { operation: OP_UPSERT_EMAIL });
3147
3147
  }
3148
3148
  }
3149
3149
  const parentRes = await http.request({ method: "GET", path: `/V1.0/Companies/${cid}`, operation: OP_UPSERT_EMAIL });
@@ -3164,7 +3164,7 @@ async function upsertByEmail(resource, companyID, email, extra, opts, http) {
3164
3164
  const match = q.items[0];
3165
3165
  if (match !== void 0) {
3166
3166
  if (opts.dryRun === true) {
3167
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
3167
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
3168
3168
  {
3169
3169
  operation: OP_UPSERT_EMAIL,
3170
3170
  method: "POST",
@@ -3194,7 +3194,7 @@ async function upsertByEmail(resource, companyID, email, extra, opts, http) {
3194
3194
  isActive: typeof isActive === "boolean" ? isActive ? 1 : 0 : isActive
3195
3195
  };
3196
3196
  if (opts.dryRun === true) {
3197
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
3197
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
3198
3198
  {
3199
3199
  operation: OP_UPSERT_EMAIL,
3200
3200
  method: "POST",
@@ -3217,8 +3217,8 @@ async function upsertByEmail(resource, companyID, email, extra, opts, http) {
3217
3217
  const created = await resource.create(cid, body, {});
3218
3218
  return { id: created.id, created: true };
3219
3219
  } catch (err) {
3220
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) throw err;
3221
- const named = (_nullishCoalesce(_chunkIHRXVIUUcjs.parseVendorErrors.call(void 0, err.vendorError), () => ( []))).map((e) => e.field).filter((f) => f !== void 0);
3220
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) throw err;
3221
+ const named = (_nullishCoalesce(_chunkKB2ANVVRcjs.parseVendorErrors.call(void 0, err.vendorError), () => ( []))).map((e) => e.field).filter((f) => f !== void 0);
3222
3222
  const seen = /* @__PURE__ */ new Set();
3223
3223
  const unique = [...named].filter((f) => seen.has(f) ? false : (seen.add(f), true));
3224
3224
  const hasDefault = unique.some((f) => SAFE_CONTACT_CREATE_DEFAULTS[f] !== void 0);
@@ -3232,7 +3232,7 @@ async function upsertByEmail(resource, companyID, email, extra, opts, http) {
3232
3232
  }
3233
3233
  continue;
3234
3234
  }
3235
- const detail = _chunkIHRXVIUUcjs.formatVendorDetail.call(void 0, err.vendorError);
3235
+ const detail = _chunkKB2ANVVRcjs.formatVendorDetail.call(void 0, err.vendorError);
3236
3236
  throw new ContactCreateFailedError(
3237
3237
  `upsertByEmail: the vendor rejected the contact create${unique.length > 0 ? ` naming field(s) ${unique.join(", ")}` : ""} (no proven-safe default \u2014 the required set is fully filled by the node)${detail ? ` \u2014 ${detail}` : ""}`,
3238
3238
  unique,
@@ -3248,7 +3248,7 @@ async function upsertByEmail(resource, companyID, email, extra, opts, http) {
3248
3248
  }
3249
3249
 
3250
3250
  // src/resources/contacts.ts
3251
- var ContactsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3251
+ var ContactsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3252
3252
  constructor(http, pageSize) {
3253
3253
  super(http, {
3254
3254
  key: "contacts",
@@ -3340,7 +3340,7 @@ var ContactsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3340
3340
  };
3341
3341
 
3342
3342
  // src/resources/contact_webhooks.ts
3343
- var ContactWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3343
+ var ContactWebhooksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3344
3344
  constructor(http, pageSize) {
3345
3345
  super(http, {
3346
3346
  key: "contact_webhooks",
@@ -3416,7 +3416,7 @@ var ContactWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3416
3416
  };
3417
3417
 
3418
3418
  // src/resources/contract_billing_rules.ts
3419
- var ContractBillingRulesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3419
+ var ContractBillingRulesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3420
3420
  constructor(http, pageSize) {
3421
3421
  super(http, {
3422
3422
  key: "contract_billing_rules",
@@ -3482,7 +3482,7 @@ var ContractBillingRulesResource = class extends _chunkIHRXVIUUcjs.BaseResource
3482
3482
  };
3483
3483
 
3484
3484
  // src/resources/contract_block_hour_factors.ts
3485
- var ContractBlockHourFactorsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3485
+ var ContractBlockHourFactorsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3486
3486
  constructor(http, pageSize) {
3487
3487
  super(http, {
3488
3488
  key: "contract_block_hour_factors",
@@ -3541,7 +3541,7 @@ var ContractBlockHourFactorsResource = class extends _chunkIHRXVIUUcjs.BaseResou
3541
3541
  };
3542
3542
 
3543
3543
  // src/resources/contract_blocks.ts
3544
- var ContractBlocksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3544
+ var ContractBlocksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3545
3545
  constructor(http, pageSize) {
3546
3546
  super(http, {
3547
3547
  key: "contract_blocks",
@@ -3600,7 +3600,7 @@ var ContractBlocksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3600
3600
  };
3601
3601
 
3602
3602
  // src/resources/contract_charges.ts
3603
- var ContractChargesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3603
+ var ContractChargesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3604
3604
  constructor(http, pageSize) {
3605
3605
  super(http, {
3606
3606
  key: "contract_charges",
@@ -3671,7 +3671,7 @@ var ContractChargesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3671
3671
  };
3672
3672
 
3673
3673
  // src/resources/contract_exclusion_billing_codes.ts
3674
- var ContractExclusionBillingCodesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3674
+ var ContractExclusionBillingCodesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3675
3675
  constructor(http, pageSize) {
3676
3676
  super(http, {
3677
3677
  key: "contract_exclusion_billing_codes",
@@ -3728,7 +3728,7 @@ var ContractExclusionBillingCodesResource = class extends _chunkIHRXVIUUcjs.Base
3728
3728
  };
3729
3729
 
3730
3730
  // src/resources/contract_exclusion_roles.ts
3731
- var ContractExclusionRolesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3731
+ var ContractExclusionRolesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3732
3732
  constructor(http, pageSize) {
3733
3733
  super(http, {
3734
3734
  key: "contract_exclusion_roles",
@@ -3785,7 +3785,7 @@ var ContractExclusionRolesResource = class extends _chunkIHRXVIUUcjs.BaseResourc
3785
3785
  };
3786
3786
 
3787
3787
  // src/resources/contract_exclusion_set_excluded_roles.ts
3788
- var ContractExclusionSetExcludedRolesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3788
+ var ContractExclusionSetExcludedRolesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3789
3789
  constructor(http, pageSize) {
3790
3790
  super(http, {
3791
3791
  key: "contract_exclusion_set_excluded_roles",
@@ -3842,7 +3842,7 @@ var ContractExclusionSetExcludedRolesResource = class extends _chunkIHRXVIUUcjs.
3842
3842
  };
3843
3843
 
3844
3844
  // src/resources/contract_exclusion_set_excluded_work_types.ts
3845
- var ContractExclusionSetExcludedWorkTypesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3845
+ var ContractExclusionSetExcludedWorkTypesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3846
3846
  constructor(http, pageSize) {
3847
3847
  super(http, {
3848
3848
  key: "contract_exclusion_set_excluded_work_types",
@@ -3899,7 +3899,7 @@ var ContractExclusionSetExcludedWorkTypesResource = class extends _chunkIHRXVIUU
3899
3899
  };
3900
3900
 
3901
3901
  // src/resources/contract_exclusion_sets.ts
3902
- var ContractExclusionSetsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3902
+ var ContractExclusionSetsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3903
3903
  constructor(http, pageSize) {
3904
3904
  super(http, {
3905
3905
  key: "contract_exclusion_sets",
@@ -3973,7 +3973,7 @@ var ContractExclusionSetsResource = class extends _chunkIHRXVIUUcjs.BaseResource
3973
3973
  };
3974
3974
 
3975
3975
  // src/resources/contract_milestones.ts
3976
- var ContractMilestonesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
3976
+ var ContractMilestonesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
3977
3977
  constructor(http, pageSize) {
3978
3978
  super(http, {
3979
3979
  key: "contract_milestones",
@@ -4032,7 +4032,7 @@ var ContractMilestonesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4032
4032
  };
4033
4033
 
4034
4034
  // src/resources/contract_notes.ts
4035
- var ContractNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4035
+ var ContractNotesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4036
4036
  constructor(http, pageSize) {
4037
4037
  super(http, {
4038
4038
  key: "contract_notes",
@@ -4091,7 +4091,7 @@ var ContractNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4091
4091
  };
4092
4092
 
4093
4093
  // src/resources/contract_rates.ts
4094
- var ContractRatesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4094
+ var ContractRatesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4095
4095
  constructor(http, pageSize) {
4096
4096
  super(http, {
4097
4097
  key: "contract_rates",
@@ -4150,7 +4150,7 @@ var ContractRatesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4150
4150
  };
4151
4151
 
4152
4152
  // src/resources/contract_retainers.ts
4153
- var ContractRetainersResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4153
+ var ContractRetainersResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4154
4154
  constructor(http, pageSize) {
4155
4155
  super(http, {
4156
4156
  key: "contract_retainers",
@@ -4209,7 +4209,7 @@ var ContractRetainersResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4209
4209
  };
4210
4210
 
4211
4211
  // src/resources/contract_role_costs.ts
4212
- var ContractRoleCostsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4212
+ var ContractRoleCostsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4213
4213
  constructor(http, pageSize) {
4214
4214
  super(http, {
4215
4215
  key: "contract_role_costs",
@@ -4268,7 +4268,7 @@ var ContractRoleCostsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4268
4268
  };
4269
4269
 
4270
4270
  // src/resources/contract_service_adjustments.ts
4271
- var ContractServiceAdjustmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4271
+ var ContractServiceAdjustmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4272
4272
  constructor(http, pageSize) {
4273
4273
  super(http, {
4274
4274
  key: "contract_service_adjustments",
@@ -4302,7 +4302,7 @@ var ContractServiceAdjustmentsResource = class extends _chunkIHRXVIUUcjs.BaseRes
4302
4302
  };
4303
4303
 
4304
4304
  // src/resources/contract_service_bundle_adjustments.ts
4305
- var ContractServiceBundleAdjustmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4305
+ var ContractServiceBundleAdjustmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4306
4306
  constructor(http, pageSize) {
4307
4307
  super(http, {
4308
4308
  key: "contract_service_bundle_adjustments",
@@ -4336,7 +4336,7 @@ var ContractServiceBundleAdjustmentsResource = class extends _chunkIHRXVIUUcjs.B
4336
4336
  };
4337
4337
 
4338
4338
  // src/resources/contract_service_bundles.ts
4339
- var ContractServiceBundlesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4339
+ var ContractServiceBundlesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4340
4340
  constructor(http, pageSize) {
4341
4341
  super(http, {
4342
4342
  key: "contract_service_bundles",
@@ -4395,7 +4395,7 @@ var ContractServiceBundlesResource = class extends _chunkIHRXVIUUcjs.BaseResourc
4395
4395
  };
4396
4396
 
4397
4397
  // src/resources/contract_service_bundle_units.ts
4398
- var ContractServiceBundleUnitsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4398
+ var ContractServiceBundleUnitsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4399
4399
  constructor(http, pageSize) {
4400
4400
  super(http, {
4401
4401
  key: "contract_service_bundle_units",
@@ -4437,7 +4437,7 @@ var ContractServiceBundleUnitsResource = class extends _chunkIHRXVIUUcjs.BaseRes
4437
4437
  };
4438
4438
 
4439
4439
  // src/resources/contract_services.ts
4440
- var ContractServicesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4440
+ var ContractServicesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4441
4441
  constructor(http, pageSize) {
4442
4442
  super(http, {
4443
4443
  key: "contract_services",
@@ -4496,7 +4496,7 @@ var ContractServicesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4496
4496
  };
4497
4497
 
4498
4498
  // src/resources/contract_service_units.ts
4499
- var ContractServiceUnitsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
4499
+ var ContractServiceUnitsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
4500
4500
  constructor(http, pageSize) {
4501
4501
  super(http, {
4502
4502
  key: "contract_service_units",
@@ -4549,7 +4549,8 @@ var PROFITABILITY_OPT_KEYS = [
4549
4549
  "groupByActivity",
4550
4550
  "staleAfterDays",
4551
4551
  "maxTicketsForJoin",
4552
- "limit"
4552
+ "limit",
4553
+ "includeRows"
4553
4554
  ];
4554
4555
  var LABOUR_METHOD_SET = [
4555
4556
  "billing_item_our_cost",
@@ -4687,8 +4688,8 @@ function dateToDay(v) {
4687
4688
  }
4688
4689
  function validateProfitabilityOptions(contractId, opts) {
4689
4690
  if (opts === void 0 || (typeof opts !== "object" || opts === null || Array.isArray(opts))) {
4690
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
4691
- `profitability: opts must be the options object (got ${opts === void 0 ? "undefined" : Array.isArray(opts) ? "an array" : typeof opts})`,
4691
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
4692
+ `profitability: opts is required \u2014 the options object with dateFrom and dateTo (YYYY-MM-DD) (got ${opts === void 0 ? "undefined" : Array.isArray(opts) ? "an array" : typeof opts})`,
4692
4693
  { operation: "contracts.profitability" }
4693
4694
  );
4694
4695
  }
@@ -4728,7 +4729,7 @@ function validateProfitabilityOptions(contractId, opts) {
4728
4729
  if (method === "provided" && rate === null) {
4729
4730
  problems.push(`labourRatePerHour is required (finite number >= 0) when labourCostMethod is "provided" (got ${String(opts.labourRatePerHour)})`);
4730
4731
  }
4731
- for (const key of ["includeRecurringCosts", "includeUnbilledRevenue", "groupByActivity"]) {
4732
+ for (const key of ["includeRecurringCosts", "includeUnbilledRevenue", "groupByActivity", "includeRows"]) {
4732
4733
  const v = opts[key];
4733
4734
  if (v !== void 0 && typeof v !== "boolean") problems.push(`${key} must be a boolean (got ${String(v)})`);
4734
4735
  }
@@ -4764,12 +4765,12 @@ function validateProfitabilityOptions(contractId, opts) {
4764
4765
  }
4765
4766
  }
4766
4767
  try {
4767
- _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, contractId, "contractId");
4768
+ _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, contractId, "contractId");
4768
4769
  } catch (err) {
4769
- problems.push(err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.message : "contractId must be a vendor numeric id");
4770
+ problems.push(err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.message : "contractId must be a vendor numeric id");
4770
4771
  }
4771
4772
  if (problems.length > 0) {
4772
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
4773
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
4773
4774
  `profitability: ${problems.length} problem(s) found pre-request (zero wire was issued)
4774
4775
  - ` + problems.join("\n- "),
4775
4776
  { operation: "contracts.profitability" }
@@ -4786,7 +4787,8 @@ function validateProfitabilityOptions(contractId, opts) {
4786
4787
  groupByActivity: _nullishCoalesce(opts.groupByActivity, () => ( true)),
4787
4788
  staleAfterDays: stale,
4788
4789
  maxTicketsForJoin: mtj,
4789
- limit
4790
+ limit,
4791
+ includeRows: _nullishCoalesce(opts.includeRows, () => ( false))
4790
4792
  };
4791
4793
  }
4792
4794
  async function boundedPart2(http, path, conditions, limit, operation, includeFields) {
@@ -4799,7 +4801,7 @@ async function boundedPart2(http, path, conditions, limit, operation, includeFie
4799
4801
  body,
4800
4802
  operation
4801
4803
  });
4802
- const { items, pageDetails } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, operation);
4804
+ const { items, pageDetails } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, operation);
4803
4805
  const capped = items.length >= limit;
4804
4806
  return { items, capped, hasMore: capped && pageDetails.nextPageUrl != null };
4805
4807
  }
@@ -4813,23 +4815,23 @@ async function fetchByIdsPart(http, entityPath, ids, fields, operation) {
4813
4815
  const byKey = /* @__PURE__ */ new Map();
4814
4816
  const misses = [];
4815
4817
  const notes = [];
4816
- for (let c = 0; c < unique.length; c += _chunkIHRXVIUUcjs.FETCH_BY_IDS_CHUNK_SIZE) {
4817
- const chunk = unique.slice(c, c + _chunkIHRXVIUUcjs.FETCH_BY_IDS_CHUNK_SIZE);
4818
+ for (let c = 0; c < unique.length; c += _chunkKB2ANVVRcjs.FETCH_BY_IDS_CHUNK_SIZE) {
4819
+ const chunk = unique.slice(c, c + _chunkKB2ANVVRcjs.FETCH_BY_IDS_CHUNK_SIZE);
4818
4820
  const chunkKeys = new Set(chunk);
4819
4821
  try {
4820
4822
  const body = {
4821
- MaxRecords: _chunkIHRXVIUUcjs.FETCH_BY_IDS_CHUNK_SIZE,
4823
+ MaxRecords: _chunkKB2ANVVRcjs.FETCH_BY_IDS_CHUNK_SIZE,
4822
4824
  filter: [{ field: "id", op: "in", value: chunk }],
4823
4825
  IncludeFields: fields
4824
4826
  };
4825
4827
  const res = await http.request({ method: "POST", idempotent: true, path: `${entityPath}/query`, body, operation });
4826
- const { items: rows } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, operation);
4828
+ const { items: rows } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, operation);
4827
4829
  for (const row of rows) {
4828
4830
  const k = num2(row.id);
4829
4831
  if (k > 0 && chunkKeys.has(k)) byKey.set(k, row);
4830
4832
  }
4831
4833
  } catch (err) {
4832
- const code = err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.code : "SERVER_ERROR";
4834
+ const code = err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.code : "SERVER_ERROR";
4833
4835
  for (const k of chunk) {
4834
4836
  if (!byKey.has(k) && !misses.some((m) => m.id === k)) misses.push({ id: k, code, message: err instanceof Error ? err.message : String(err) });
4835
4837
  }
@@ -4839,11 +4841,11 @@ async function fetchByIdsPart(http, entityPath, ids, fields, operation) {
4839
4841
  for (const k of queryMissed) {
4840
4842
  try {
4841
4843
  const res = await http.request({ method: "GET", path: `${entityPath}/${k}`, operation });
4842
- byKey.set(k, _chunkIHRXVIUUcjs.unwrapItem.call(void 0, res, k, operation));
4844
+ byKey.set(k, _chunkKB2ANVVRcjs.unwrapItem.call(void 0, res, k, operation));
4843
4845
  } catch (err) {
4844
- if (err instanceof _chunkIHRXVIUUcjs.NotFoundError) {
4846
+ if (err instanceof _chunkKB2ANVVRcjs.NotFoundError) {
4845
4847
  misses.push({ id: k, code: "NOT_FOUND", message: err.message });
4846
- } else if (err instanceof _chunkIHRXVIUUcjs.AutotaskError) {
4848
+ } else if (err instanceof _chunkKB2ANVVRcjs.AutotaskError) {
4847
4849
  misses.push({ id: k, code: err.code, message: err.message });
4848
4850
  } else {
4849
4851
  misses.push({ id: k, code: "SERVER_ERROR", message: err instanceof Error ? err.message : String(err) });
@@ -4966,7 +4968,7 @@ async function degradable(read) {
4966
4968
  try {
4967
4969
  return await read();
4968
4970
  } catch (err) {
4969
- if (!(err instanceof _chunkIHRXVIUUcjs.AutotaskError)) throw err;
4971
+ if (!(err instanceof _chunkKB2ANVVRcjs.AutotaskError)) throw err;
4970
4972
  return { items: [], capped: false, hasMore: false, absent: err.code, absentMessage: err.message };
4971
4973
  }
4972
4974
  }
@@ -4985,9 +4987,9 @@ function dedupeSortCap(ids, limit) {
4985
4987
  return [...new Set(ids)].sort((a, b) => Number(a) - Number(b)).slice(0, limit);
4986
4988
  }
4987
4989
  async function profitability(resource, contractId, opts, rawHttp) {
4988
- const v = validateProfitabilityOptions(contractId, _nullishCoalesce(opts, () => ( {})));
4990
+ const v = validateProfitabilityOptions(contractId, opts);
4989
4991
  const OP2 = "contracts.profitability";
4990
- const id = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, contractId, "contractId");
4992
+ const id = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, contractId, "contractId");
4991
4993
  const idNum = typeof id === "number" ? id : Number(id);
4992
4994
  const wires = { issued: 0, requests: 0, budget: PROFITABILITY_WIRE_BUDGET };
4993
4995
  const asOf = (/* @__PURE__ */ new Date()).toISOString();
@@ -5015,7 +5017,7 @@ async function profitability(resource, contractId, opts, rawHttp) {
5015
5017
  status: st.status,
5016
5018
  blindSurface: st.blindSurface,
5017
5019
  note: [st.note, ..._nullishCoalesce(extraNotes, () => ( []))].filter(Boolean).join(" | ") || void 0,
5018
- emptyReason: raw.items.length === 0 && st.status === "ok" ? _optionalChain([_chunkIHRXVIUUcjs.EMPTY_REASON_STAMPS, 'access', _29 => _29[key], 'optionalAccess', _30 => _30.query]) : void 0
5020
+ emptyReason: raw.items.length === 0 && st.status === "ok" ? _optionalChain([_chunkKB2ANVVRcjs.EMPTY_REASON_STAMPS, 'access', _29 => _29[key], 'optionalAccess', _30 => _30.query]) : void 0
5019
5021
  };
5020
5022
  };
5021
5023
  const truncatedMonths = {};
@@ -5045,12 +5047,12 @@ async function profitability(resource, contractId, opts, rawHttp) {
5045
5047
  path: `/V1.0/Companies/${companyID}`,
5046
5048
  operation: OP2
5047
5049
  });
5048
- const item = _chunkIHRXVIUUcjs.unwrapItem.call(void 0, res, companyID, OP2);
5050
+ const item = _chunkKB2ANVVRcjs.unwrapItem.call(void 0, res, companyID, OP2);
5049
5051
  customer = _nullishCoalesce(item, () => ( null));
5050
5052
  customerStatus = "ok";
5051
5053
  } catch (err) {
5052
- if (!(err instanceof _chunkIHRXVIUUcjs.AutotaskError)) throw err;
5053
- if (!(err instanceof _chunkIHRXVIUUcjs.NotFoundError)) {
5054
+ if (!(err instanceof _chunkKB2ANVVRcjs.AutotaskError)) throw err;
5055
+ if (!(err instanceof _chunkKB2ANVVRcjs.NotFoundError)) {
5054
5056
  customerStatus = "absent";
5055
5057
  customerAbsent = err.code;
5056
5058
  }
@@ -5063,7 +5065,7 @@ async function profitability(resource, contractId, opts, rawHttp) {
5063
5065
  try {
5064
5066
  contractTypeLabel = await _asyncNullishCoalesce(await _asyncOptionalChain([(await readPicklists(http, "/V1.0/Contracts", OP2)), 'access', async _34 => _34.get, 'call', async _35 => _35("contractType"), 'optionalAccess', async _36 => _36.get, 'call', async _37 => _37(contractType)]), async () => ( null));
5065
5067
  } catch (err) {
5066
- if (!(err instanceof _chunkIHRXVIUUcjs.AutotaskError)) throw err;
5068
+ if (!(err instanceof _chunkKB2ANVVRcjs.AutotaskError)) throw err;
5067
5069
  }
5068
5070
  }
5069
5071
  const contractTypeKnown = contractTypeLabel !== null;
@@ -5110,8 +5112,8 @@ async function profitability(resource, contractId, opts, rawHttp) {
5110
5112
  if (invoiceIds.length === 0) {
5111
5113
  invoicesPart = skipPart("skipped: the billing part has no invoiceIDs (zero wire)");
5112
5114
  } else {
5113
- const capped = capJoinSet2(invoiceIds, _chunkIHRXVIUUcjs.FETCH_BY_IDS_MAX_ITEMS);
5114
- if (capped.truncated) wires.note = (wires.note ? wires.note + " | " : "") + `invoiceJoinTruncated: the join set is capped at ${_chunkIHRXVIUUcjs.FETCH_BY_IDS_MAX_ITEMS} of ${capped.total} invoice ids (the fetch-by-ids cap) \u2014 the figures cover the returned set only`;
5115
+ const capped = capJoinSet2(invoiceIds, _chunkKB2ANVVRcjs.FETCH_BY_IDS_MAX_ITEMS);
5116
+ if (capped.truncated) wires.note = (wires.note ? wires.note + " | " : "") + `invoiceJoinTruncated: the join set is capped at ${_chunkKB2ANVVRcjs.FETCH_BY_IDS_MAX_ITEMS} of ${capped.total} invoice ids (the fetch-by-ids cap) \u2014 the figures cover the returned set only`;
5115
5117
  const fb = await fetchByIdsPart(http, "/V1.0/Invoices", capped.ids, ["id", "invoiceNumber", "invoiceTotal", "paidDate", "isVoided", "dueDate"], OP2);
5116
5118
  wires.issued += 1;
5117
5119
  invoices = fb.items;
@@ -5143,7 +5145,7 @@ async function profitability(resource, contractId, opts, rawHttp) {
5143
5145
  }
5144
5146
  }
5145
5147
  } catch (err) {
5146
- statusNote = `the tickets.status field catalog read failed (${err instanceof _chunkIHRXVIUUcjs.AutotaskError ? err.code : "SERVER_ERROR"}: ${err instanceof Error ? err.message : String(err)}) \u2014 the open-status labels are unavailable`;
5148
+ statusNote = `the tickets.status field catalog read failed (${err instanceof _chunkKB2ANVVRcjs.AutotaskError ? err.code : "SERVER_ERROR"}: ${err instanceof Error ? err.message : String(err)}) \u2014 the open-status labels are unavailable`;
5147
5149
  }
5148
5150
  let ticketsOpenPart;
5149
5151
  let openTickets = [];
@@ -5162,8 +5164,8 @@ async function profitability(resource, contractId, opts, rawHttp) {
5162
5164
  if (resourceIds.length === 0) {
5163
5165
  resourcesPart = skipPart("skipped: the time part has no resourceIDs (zero wire)");
5164
5166
  } else {
5165
- const capped = capJoinSet2(resourceIds, _chunkIHRXVIUUcjs.FETCH_BY_IDS_MAX_ITEMS);
5166
- if (capped.truncated) wires.note = (wires.note ? wires.note + " | " : "") + `resourceJoinTruncated: the join set is capped at ${_chunkIHRXVIUUcjs.FETCH_BY_IDS_MAX_ITEMS} of ${capped.total} resource ids (the fetch-by-ids cap) \u2014 the figures cover the returned set only`;
5167
+ const capped = capJoinSet2(resourceIds, _chunkKB2ANVVRcjs.FETCH_BY_IDS_MAX_ITEMS);
5168
+ if (capped.truncated) wires.note = (wires.note ? wires.note + " | " : "") + `resourceJoinTruncated: the join set is capped at ${_chunkKB2ANVVRcjs.FETCH_BY_IDS_MAX_ITEMS} of ${capped.total} resource ids (the fetch-by-ids cap) \u2014 the figures cover the returned set only`;
5167
5169
  const fb = await fetchByIdsPart(http, "/V1.0/Resources", capped.ids, ["id", "internalCost", "firstName", "lastName", "isActive", "userType"], OP2);
5168
5170
  wires.issued += 1;
5169
5171
  resources = fb.items;
@@ -5220,7 +5222,7 @@ async function profitability(resource, contractId, opts, rawHttp) {
5220
5222
  if (cis.length === 0) {
5221
5223
  subscriptionsPart = skipPart("skipped: the CI join found no configuration items \u2014 the subscriptions part is not evaluable (zero wire)");
5222
5224
  } else {
5223
- const ciIds = capJoinSet2(cis.map((c) => num2(c["id"])).filter((n) => n > 0), _chunkIHRXVIUUcjs.FETCH_BY_IDS_MAX_ITEMS);
5225
+ const ciIds = capJoinSet2(cis.map((c) => num2(c["id"])).filter((n) => n > 0), _chunkKB2ANVVRcjs.FETCH_BY_IDS_MAX_ITEMS);
5224
5226
  const subCond = [{ field: "configurationItemID", op: "in", value: ciIds.ids }];
5225
5227
  const raw = await readPart("/V1.0/Subscriptions/query", subCond, ["id", "subscriptionName", "configurationItemID", "periodCost", "periodPrice", "periodType", "effectiveDate", "expirationDate", "status", "totalCost"]);
5226
5228
  subscriptions = raw.items;
@@ -5230,7 +5232,7 @@ async function profitability(resource, contractId, opts, rawHttp) {
5230
5232
  try {
5231
5233
  labels = await readPicklists(http, "/V1.0/Subscriptions", OP2);
5232
5234
  } catch (err) {
5233
- if (!(err instanceof _chunkIHRXVIUUcjs.AutotaskError)) throw err;
5235
+ if (!(err instanceof _chunkKB2ANVVRcjs.AutotaskError)) throw err;
5234
5236
  }
5235
5237
  }
5236
5238
  for (const x of subscriptions) {
@@ -5403,17 +5405,20 @@ async function profitability(resource, contractId, opts, rawHttp) {
5403
5405
  else labourTotal += _nullishCoalesce(r.cost, () => ( 0));
5404
5406
  }
5405
5407
  const unposted = mEntries.filter((e) => e["isNonBillable"] !== true && !billedByEntryId.has(num2(e["id"])));
5406
- const unpostedHours = unposted.reduce((a, e) => a + Math.max(0, num2(e["hoursToBill"])), 0);
5408
+ const hoursMissing = unposted.some((e) => typeof e["hoursToBill"] !== "number" || !Number.isFinite(e["hoursToBill"]));
5409
+ const hoursPart = hoursMissing ? { entries: unposted.length, hours: null, hoursAbsent: "HOURS_TO_BILL_MISSING" } : { entries: unposted.length, hours: unposted.reduce((a, e) => a + Math.max(0, num2(e["hoursToBill"])), 0) };
5407
5410
  let unpostedTime;
5408
5411
  if (!contractTypeKnown) {
5409
- unpostedTime = { entries: unposted.length, hours: unpostedHours, value: null, absent: "CONTRACT_TYPE_UNKNOWN" };
5412
+ unpostedTime = { ...hoursPart, value: null, absent: "CONTRACT_TYPE_UNKNOWN" };
5410
5413
  } else if (!isTimeAndMaterials) {
5411
- unpostedTime = { entries: unposted.length, hours: unpostedHours, value: null, absent: "NOT_TIME_AND_MATERIALS_CONTRACT" };
5414
+ unpostedTime = { ...hoursPart, value: null, absent: "NOT_TIME_AND_MATERIALS_CONTRACT" };
5412
5415
  } else if (unposted.some((e) => !contractRateByRole.has(num2(e["roleID"])))) {
5413
- unpostedTime = { entries: unposted.length, hours: unpostedHours, value: null, absent: "NO_CONTRACT_RATE" };
5416
+ unpostedTime = { ...hoursPart, value: null, absent: "NO_CONTRACT_RATE" };
5417
+ } else if (hoursMissing) {
5418
+ unpostedTime = { ...hoursPart, value: null, absent: "HOURS_TO_BILL_MISSING" };
5414
5419
  } else {
5415
5420
  const value = unposted.reduce((a, e) => a + Math.max(0, num2(e["hoursToBill"])) * contractRateByRole.get(num2(e["roleID"])), 0);
5416
- unpostedTime = { entries: unposted.length, hours: unpostedHours, value };
5421
+ unpostedTime = { ...hoursPart, value };
5417
5422
  }
5418
5423
  let toolingVendor = subscriptionsPart.status === "skipped" || subscriptionsPart.status === "absent" ? null : 0;
5419
5424
  if (toolingVendor !== null) {
@@ -5725,6 +5730,11 @@ async function profitability(resource, contractId, opts, rawHttp) {
5725
5730
  const purchasedHours = blocks.reduce((a, b) => a + num2(b["hours"]), 0);
5726
5731
  const approvedHours = blocks.reduce((a, b) => a + num2(b["hoursApproved"]), 0);
5727
5732
  const includedHours = !contractTypeKnown ? { value: null, absent: "CONTRACT_TYPE_UNKNOWN" } : !isBlockHours ? { value: null, absent: "NOT_BLOCK_HOURS_CONTRACT" } : blocksPart.status === "absent" ? { value: null, absent: blocksPart.absent } : { value: { purchased: purchasedHours, approved: approvedHours, remaining: purchasedHours - approvedHours } };
5733
+ const rows = (part) => {
5734
+ if (v.includeRows) return part;
5735
+ const { items, ...stamps } = part;
5736
+ return { ...stamps, rows_fetched: items.length };
5737
+ };
5728
5738
  return {
5729
5739
  contract,
5730
5740
  customer,
@@ -5763,28 +5773,28 @@ async function profitability(resource, contractId, opts, rawHttp) {
5763
5773
  configurationItems: configurationItemsPart.status,
5764
5774
  subscriptions: subscriptionsPart.status
5765
5775
  },
5766
- contractServices: servicesPart,
5767
- contractServiceUnits: unitsPart,
5768
- contractCharges: chargesPart,
5769
- contractRoleCosts: roleCostsPart,
5770
- contractRates: ratesPart,
5771
- contractBlocks: blocksPart,
5772
- billingItems,
5773
- invoices: invoicesPart,
5774
- timeEntries,
5775
- ticketsActivity: ticketsActivityPart,
5776
- ticketsOpen: ticketsOpenPart,
5777
- resources: resourcesPart,
5778
- expenses: expensesPart,
5779
- miscodingProbe: probePart,
5780
- configurationItems: configurationItemsPart,
5781
- subscriptions: subscriptionsPart,
5776
+ contractServices: rows(servicesPart),
5777
+ contractServiceUnits: rows(unitsPart),
5778
+ contractCharges: rows(chargesPart),
5779
+ contractRoleCosts: rows(roleCostsPart),
5780
+ contractRates: rows(ratesPart),
5781
+ contractBlocks: rows(blocksPart),
5782
+ billingItems: rows(billingItems),
5783
+ invoices: rows(invoicesPart),
5784
+ timeEntries: rows(timeEntries),
5785
+ ticketsActivity: rows(ticketsActivityPart),
5786
+ ticketsOpen: rows(ticketsOpenPart),
5787
+ resources: rows(resourcesPart),
5788
+ expenses: rows(expensesPart),
5789
+ miscodingProbe: rows(probePart),
5790
+ configurationItems: rows(configurationItemsPart),
5791
+ subscriptions: rows(subscriptionsPart),
5782
5792
  wires: { issued: wires.issued, requests: wires.requests, budget: wires.budget, note: wires.note }
5783
5793
  };
5784
5794
  }
5785
5795
 
5786
5796
  // src/resources/contracts.ts
5787
- var ContractsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
5797
+ var ContractsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
5788
5798
  constructor(http, pageSize) {
5789
5799
  super(http, {
5790
5800
  key: "contracts",
@@ -5855,7 +5865,7 @@ var ContractsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
5855
5865
  };
5856
5866
 
5857
5867
  // src/resources/contract_ticket_purchases.ts
5858
- var ContractTicketPurchasesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
5868
+ var ContractTicketPurchasesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
5859
5869
  constructor(http, pageSize) {
5860
5870
  super(http, {
5861
5871
  key: "contract_ticket_purchases",
@@ -5914,7 +5924,7 @@ var ContractTicketPurchasesResource = class extends _chunkIHRXVIUUcjs.BaseResour
5914
5924
  };
5915
5925
 
5916
5926
  // src/resources/countries.ts
5917
- var CountriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
5927
+ var CountriesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
5918
5928
  constructor(http, pageSize) {
5919
5929
  super(http, {
5920
5930
  key: "countries",
@@ -5973,7 +5983,7 @@ var CountriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
5973
5983
  };
5974
5984
 
5975
5985
  // src/resources/departments.ts
5976
- var DepartmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
5986
+ var DepartmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
5977
5987
  constructor(http, pageSize) {
5978
5988
  super(http, {
5979
5989
  key: "departments",
@@ -6040,7 +6050,7 @@ var DepartmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6040
6050
  };
6041
6051
 
6042
6052
  // src/resources/domain_registrars.ts
6043
- var DomainRegistrarsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6053
+ var DomainRegistrarsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6044
6054
  constructor(http, pageSize) {
6045
6055
  super(http, {
6046
6056
  key: "domain_registrars",
@@ -6123,7 +6133,7 @@ var EntityInformationResource = class {
6123
6133
  };
6124
6134
 
6125
6135
  // src/resources/expense_item_attachments.ts
6126
- var ExpenseItemAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6136
+ var ExpenseItemAttachmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6127
6137
  constructor(http, pageSize) {
6128
6138
  super(http, {
6129
6139
  key: "expense_item_attachments",
@@ -6185,7 +6195,7 @@ var ExpenseItemAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResourc
6185
6195
  };
6186
6196
 
6187
6197
  // src/resources/expense_items.ts
6188
- var ExpenseItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6198
+ var ExpenseItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6189
6199
  constructor(http, pageSize) {
6190
6200
  super(http, {
6191
6201
  key: "expense_items",
@@ -6244,7 +6254,7 @@ var ExpenseItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6244
6254
  };
6245
6255
 
6246
6256
  // src/resources/expense_reports.ts
6247
- var ExpenseReportsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6257
+ var ExpenseReportsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6248
6258
  constructor(http, pageSize) {
6249
6259
  super(http, {
6250
6260
  key: "expense_reports",
@@ -6311,7 +6321,7 @@ var ExpenseReportsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6311
6321
  };
6312
6322
 
6313
6323
  // src/resources/holiday_sets.ts
6314
- var HolidaySetsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6324
+ var HolidaySetsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6315
6325
  constructor(http, pageSize) {
6316
6326
  super(http, {
6317
6327
  key: "holiday_sets",
@@ -6380,7 +6390,7 @@ var HolidaySetsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6380
6390
  };
6381
6391
 
6382
6392
  // src/resources/holidays.ts
6383
- var HolidaysResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6393
+ var HolidaysResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6384
6394
  constructor(http, pageSize) {
6385
6395
  super(http, {
6386
6396
  key: "holidays",
@@ -6452,10 +6462,10 @@ var PATH_SUFFIX = {
6452
6462
  transfer: "StockedItemsTransfer"
6453
6463
  };
6454
6464
  async function stockedItems(_resource, kind, parentId, data, opts = {}, http) {
6455
- const numericParent = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, parentId, "parentId");
6465
+ const numericParent = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, parentId, "parentId");
6456
6466
  const suffix = PATH_SUFFIX[kind];
6457
6467
  if (opts.dryRun === true) {
6458
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
6468
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
6459
6469
  operation: `inventory_products.stockedItems${suffix.slice("StockedItems".length)}`,
6460
6470
  method: "POST",
6461
6471
  path: `/V1.0/InventoryProducts/${numericParent}/${suffix}`,
@@ -6471,11 +6481,11 @@ async function stockedItems(_resource, kind, parentId, data, opts = {}, http) {
6471
6481
  body: data,
6472
6482
  operation: `inventory_products.stockedItems${suffix.slice("StockedItems".length)}`
6473
6483
  });
6474
- return _chunkIHRXVIUUcjs.unwrapOperation.call(void 0, res);
6484
+ return _chunkKB2ANVVRcjs.unwrapOperation.call(void 0, res);
6475
6485
  }
6476
6486
 
6477
6487
  // src/resources/inventory_products.ts
6478
- var InventoryProductsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6488
+ var InventoryProductsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6479
6489
  constructor(http, pageSize) {
6480
6490
  super(http, {
6481
6491
  key: "inventory_products",
@@ -6557,7 +6567,7 @@ var InventoryProductsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6557
6567
 
6558
6568
  // src/resources/special/invoices.ts
6559
6569
  async function markup(_resource, id, format, http) {
6560
- const numericId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
6570
+ const numericId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
6561
6571
  const suffix = format === "html" ? "InvoiceMarkupHtml" : "InvoiceMarkupXml";
6562
6572
  const res = await http.request({
6563
6573
  method: "GET",
@@ -6566,7 +6576,7 @@ async function markup(_resource, id, format, http) {
6566
6576
  });
6567
6577
  const body = res;
6568
6578
  if (body === null || typeof body !== "object" || typeof body.invoiceMarkup !== "string") {
6569
- throw new (0, _chunkIHRXVIUUcjs.AutotaskError)(
6579
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskError)(
6570
6580
  `Expected the InvoiceMarkupResultModel envelope { invoiceMarkup: string } for invoice ${numericId}; got a different shape`,
6571
6581
  { code: "INVALID_RESPONSE", category: "server", resourceIds: [numericId] }
6572
6582
  );
@@ -6574,13 +6584,13 @@ async function markup(_resource, id, format, http) {
6574
6584
  return body.invoiceMarkup;
6575
6585
  }
6576
6586
  async function pdf(_resource, id, http) {
6577
- const numericId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
6587
+ const numericId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
6578
6588
  const res = await http.request({
6579
6589
  method: "GET",
6580
6590
  path: `/V1.0/Invoices/${numericId}/InvoicePdf`,
6581
6591
  operation: "invoices.pdf"
6582
6592
  });
6583
- return _chunkIHRXVIUUcjs.decodeFileData.call(void 0, res);
6593
+ return _chunkKB2ANVVRcjs.decodeFileData.call(void 0, res);
6584
6594
  }
6585
6595
  async function windowQuery2(_resource, kind, http, opts) {
6586
6596
  const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _46 => _46.now]), () => ( /* @__PURE__ */ new Date()));
@@ -6611,7 +6621,7 @@ async function customRange2(_resource, from, to, http, opts) {
6611
6621
  }
6612
6622
 
6613
6623
  // src/resources/invoices.ts
6614
- var InvoicesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6624
+ var InvoicesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6615
6625
  constructor(http, pageSize) {
6616
6626
  super(http, {
6617
6627
  key: "invoices",
@@ -6741,7 +6751,7 @@ var ModulesResource = class {
6741
6751
  };
6742
6752
 
6743
6753
  // src/resources/notification_history.ts
6744
- var NotificationHistoryResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6754
+ var NotificationHistoryResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6745
6755
  constructor(http, pageSize) {
6746
6756
  super(http, {
6747
6757
  key: "notification_history",
@@ -6780,7 +6790,7 @@ var NotificationHistoryResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6780
6790
  };
6781
6791
 
6782
6792
  // src/resources/opportunities.ts
6783
- var OpportunitiesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6793
+ var OpportunitiesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6784
6794
  constructor(http, pageSize) {
6785
6795
  super(http, {
6786
6796
  key: "opportunities",
@@ -6842,7 +6852,7 @@ var OpportunitiesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6842
6852
  };
6843
6853
 
6844
6854
  // src/resources/opportunity_attachments.ts
6845
- var OpportunityAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6855
+ var OpportunityAttachmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6846
6856
  constructor(http, pageSize) {
6847
6857
  super(http, {
6848
6858
  key: "opportunity_attachments",
@@ -6904,7 +6914,7 @@ var OpportunityAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResourc
6904
6914
  };
6905
6915
 
6906
6916
  // src/resources/opportunity_categories.ts
6907
- var OpportunityCategoriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6917
+ var OpportunityCategoriesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6908
6918
  constructor(http, pageSize) {
6909
6919
  super(http, {
6910
6920
  key: "opportunity_categories",
@@ -6963,7 +6973,7 @@ var OpportunityCategoriesResource = class extends _chunkIHRXVIUUcjs.BaseResource
6963
6973
  };
6964
6974
 
6965
6975
  // src/resources/phases.ts
6966
- var PhasesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
6976
+ var PhasesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
6967
6977
  constructor(http, pageSize) {
6968
6978
  super(http, {
6969
6979
  key: "phases",
@@ -7022,7 +7032,7 @@ var PhasesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7022
7032
  };
7023
7033
 
7024
7034
  // src/resources/products.ts
7025
- var ProductsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7035
+ var ProductsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7026
7036
  constructor(http, pageSize) {
7027
7037
  super(http, {
7028
7038
  key: "products",
@@ -7089,7 +7099,7 @@ var ProductsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7089
7099
  };
7090
7100
 
7091
7101
  // src/resources/product_vendors.ts
7092
- var ProductVendorsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7102
+ var ProductVendorsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7093
7103
  constructor(http, pageSize) {
7094
7104
  super(http, {
7095
7105
  key: "product_vendors",
@@ -7148,7 +7158,7 @@ var ProductVendorsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7148
7158
  };
7149
7159
 
7150
7160
  // src/resources/project_charges.ts
7151
- var ProjectChargesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7161
+ var ProjectChargesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7152
7162
  constructor(http, pageSize) {
7153
7163
  super(http, {
7154
7164
  key: "project_charges",
@@ -7219,7 +7229,7 @@ var ProjectChargesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7219
7229
  };
7220
7230
 
7221
7231
  // src/resources/project_notes.ts
7222
- var ProjectNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7232
+ var ProjectNotesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7223
7233
  constructor(http, pageSize) {
7224
7234
  super(http, {
7225
7235
  key: "project_notes",
@@ -7278,7 +7288,7 @@ var ProjectNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7278
7288
  };
7279
7289
 
7280
7290
  // src/resources/projects.ts
7281
- var ProjectsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7291
+ var ProjectsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7282
7292
  constructor(http, pageSize) {
7283
7293
  super(http, {
7284
7294
  key: "projects",
@@ -7355,13 +7365,13 @@ var ProjectsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7355
7365
  const leadResource = await this.contextFetch("/V1.0/Resources", root["projectLeadResourceID"]);
7356
7366
  const result = { project, company, opportunity, leadResource };
7357
7367
  if (opts.names === true) {
7358
- const builder = _chunkIHRXVIUUcjs.createNamePlan.call(void 0, );
7368
+ const builder = _chunkKB2ANVVRcjs.createNamePlan.call(void 0, );
7359
7369
  builder.addResource(root["creatorResourceID"]);
7360
7370
  builder.addFk("contract", root["contractID"]);
7361
- const names = await _chunkIHRXVIUUcjs.resolveCompositeNames.call(void 0, this.http, builder.plan(), { maxNameReads: opts.maxNameReads });
7371
+ const names = await _chunkKB2ANVVRcjs.resolveCompositeNames.call(void 0, this.http, builder.plan(), { maxNameReads: opts.maxNameReads });
7362
7372
  const row = { ...project };
7363
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, row, "creatorResourceID", (v) => names.resourceName(v));
7364
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, row, "contractID", (v) => names.recordName("contract", v));
7373
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, row, "creatorResourceID", (v) => names.resourceName(v));
7374
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, row, "contractID", (v) => names.recordName("contract", v));
7365
7375
  result.project = row;
7366
7376
  result.names = names.section;
7367
7377
  }
@@ -7370,7 +7380,7 @@ var ProjectsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7370
7380
  };
7371
7381
 
7372
7382
  // src/resources/purchase_approvals.ts
7373
- var PurchaseApprovalsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7383
+ var PurchaseApprovalsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7374
7384
  constructor(http, pageSize) {
7375
7385
  super(http, {
7376
7386
  key: "purchase_approvals",
@@ -7424,7 +7434,7 @@ var PurchaseApprovalsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7424
7434
  };
7425
7435
 
7426
7436
  // src/resources/purchase_order_item_receiving.ts
7427
- var PurchaseOrderItemReceivingResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7437
+ var PurchaseOrderItemReceivingResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7428
7438
  constructor(http, pageSize) {
7429
7439
  super(http, {
7430
7440
  key: "purchase_order_item_receiving",
@@ -7474,7 +7484,7 @@ var PurchaseOrderItemReceivingResource = class extends _chunkIHRXVIUUcjs.BaseRes
7474
7484
  };
7475
7485
 
7476
7486
  // src/resources/purchase_order_items.ts
7477
- var PurchaseOrderItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7487
+ var PurchaseOrderItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7478
7488
  constructor(http, pageSize) {
7479
7489
  super(http, {
7480
7490
  key: "purchase_order_items",
@@ -7533,7 +7543,7 @@ var PurchaseOrderItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7533
7543
  };
7534
7544
 
7535
7545
  // src/resources/purchase_orders.ts
7536
- var PurchaseOrdersResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7546
+ var PurchaseOrdersResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7537
7547
  constructor(http, pageSize) {
7538
7548
  super(http, {
7539
7549
  key: "purchase_orders",
@@ -7595,7 +7605,7 @@ var PurchaseOrdersResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7595
7605
  };
7596
7606
 
7597
7607
  // src/resources/quote_items.ts
7598
- var QuoteItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7608
+ var QuoteItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7599
7609
  constructor(http, pageSize) {
7600
7610
  super(http, {
7601
7611
  key: "quote_items",
@@ -7666,7 +7676,7 @@ var QuoteItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7666
7676
  };
7667
7677
 
7668
7678
  // src/resources/quote_locations.ts
7669
- var QuoteLocationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7679
+ var QuoteLocationsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7670
7680
  constructor(http, pageSize) {
7671
7681
  super(http, {
7672
7682
  key: "quote_locations",
@@ -7731,7 +7741,7 @@ var QuoteLocationsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7731
7741
  };
7732
7742
 
7733
7743
  // src/resources/quotes.ts
7734
- var QuotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7744
+ var QuotesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7735
7745
  constructor(http, pageSize) {
7736
7746
  super(http, {
7737
7747
  key: "quotes",
@@ -7798,7 +7808,7 @@ var QuotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7798
7808
  };
7799
7809
 
7800
7810
  // src/resources/quote_templates.ts
7801
- var QuoteTemplatesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7811
+ var QuoteTemplatesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7802
7812
  constructor(http, pageSize) {
7803
7813
  super(http, {
7804
7814
  key: "quote_templates",
@@ -7842,7 +7852,7 @@ var QuoteTemplatesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7842
7852
  };
7843
7853
 
7844
7854
  // src/resources/resource_role_queues.ts
7845
- var ResourceRoleQueuesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7855
+ var ResourceRoleQueuesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7846
7856
  constructor(http, pageSize) {
7847
7857
  super(http, {
7848
7858
  key: "resource_role_queues",
@@ -7901,7 +7911,7 @@ var ResourceRoleQueuesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7901
7911
  };
7902
7912
 
7903
7913
  // src/resources/resource_roles.ts
7904
- var ResourceRolesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7914
+ var ResourceRolesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7905
7915
  constructor(http, pageSize) {
7906
7916
  super(http, {
7907
7917
  key: "resource_roles",
@@ -7943,7 +7953,7 @@ var ResourceRolesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7943
7953
  };
7944
7954
 
7945
7955
  // src/resources/resource_skills.ts
7946
- var ResourceSkillsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7956
+ var ResourceSkillsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
7947
7957
  constructor(http, pageSize) {
7948
7958
  super(http, {
7949
7959
  key: "resource_skills",
@@ -7997,16 +8007,16 @@ var ResourceSkillsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
7997
8007
  var MAX_TRANSFER_IDS = 500;
7998
8008
  function requirePositiveIds(ids, label) {
7999
8009
  if (!Array.isArray(ids) || ids.length === 0) {
8000
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`${label}: at least one positive integer id is required`);
8010
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`${label}: at least one positive integer id is required`);
8001
8011
  }
8002
8012
  if (ids.length > MAX_TRANSFER_IDS) {
8003
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`${label}: at most ${MAX_TRANSFER_IDS} ids are accepted (bounded fan-out)`);
8013
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`${label}: at most ${MAX_TRANSFER_IDS} ids are accepted (bounded fan-out)`);
8004
8014
  }
8005
8015
  const out = [];
8006
8016
  for (const raw of ids) {
8007
- const id = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, raw, `${label} id`);
8017
+ const id = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, raw, `${label} id`);
8008
8018
  if (typeof id === "number" && id < 1) {
8009
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`${label}: every id must be a positive integer (got ${String(raw)})`);
8019
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`${label}: every id must be a positive integer (got ${String(raw)})`);
8010
8020
  }
8011
8021
  out.push(id);
8012
8022
  }
@@ -8014,7 +8024,7 @@ function requirePositiveIds(ids, label) {
8014
8024
  }
8015
8025
  async function whoAmI(_resource, userName, http) {
8016
8026
  const user = userName.trim();
8017
- if (user === "") throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("whoAmI: the configured UserName is empty");
8027
+ if (user === "") throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("whoAmI: the configured UserName is empty");
8018
8028
  const value = user.includes("@") ? _nullishCoalesce(user.split("@")[0], () => ( "")) : user;
8019
8029
  const res = await http.request({
8020
8030
  method: "POST",
@@ -8023,11 +8033,11 @@ async function whoAmI(_resource, userName, http) {
8023
8033
  body: { MaxRecords: 2, filter: [{ field: "userName", op: "eq", value }] },
8024
8034
  operation: "resources.whoAmI"
8025
8035
  });
8026
- const matches = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
8036
+ const matches = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
8027
8037
  if (matches.length === 0) return null;
8028
8038
  if (matches.length > 1) {
8029
8039
  const ids = matches.map((m) => m.id).filter((id) => typeof id === "number");
8030
- throw new (0, _chunkIHRXVIUUcjs.ResolutionError)(
8040
+ throw new (0, _chunkKB2ANVVRcjs.ResolutionError)(
8031
8041
  `whoAmI: "${value}" is ambiguous (matched ${matches.length} resources)`,
8032
8042
  { code: "RESOLUTION_AMBIGUOUS", resourceIds: ids }
8033
8043
  );
@@ -8036,9 +8046,9 @@ async function whoAmI(_resource, userName, http) {
8036
8046
  }
8037
8047
  async function transferOwnership(_resource, companyIds, destinationResourceId, http, opts) {
8038
8048
  const ids = requirePositiveIds(companyIds, "transferOwnership");
8039
- const destination = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, destinationResourceId, "destinationResourceId");
8049
+ const destination = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, destinationResourceId, "destinationResourceId");
8040
8050
  if (typeof destination === "number" && destination < 1) {
8041
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("transferOwnership: destinationResourceId must be a positive integer");
8051
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("transferOwnership: destinationResourceId must be a positive integer");
8042
8052
  }
8043
8053
  const dryRun = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _51 => _51.dryRun]), () => ( true));
8044
8054
  const changes = [];
@@ -8050,7 +8060,7 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
8050
8060
  path: `/V1.0/Companies/${id}`,
8051
8061
  operation: "resources.transferOwnership"
8052
8062
  });
8053
- const company = _chunkIHRXVIUUcjs.unwrapItem.call(void 0, res, id);
8063
+ const company = _chunkKB2ANVVRcjs.unwrapItem.call(void 0, res, id);
8054
8064
  const current = typeof company.ownerResourceID === "number" ? company.ownerResourceID : null;
8055
8065
  changes.push({ id, fromOwnerResourceID: current, toOwnerResourceID: destination });
8056
8066
  if (!dryRun) {
@@ -8060,11 +8070,11 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
8060
8070
  body: { id, ownerResourceID: destination },
8061
8071
  operation: "resources.transferOwnership"
8062
8072
  });
8063
- _chunkIHRXVIUUcjs.unwrapOperation.call(void 0, update);
8073
+ _chunkKB2ANVVRcjs.unwrapOperation.call(void 0, update);
8064
8074
  applied.push(id);
8065
8075
  }
8066
8076
  } catch (err) {
8067
- if (!dryRun && err instanceof _chunkIHRXVIUUcjs.AutotaskError) {
8077
+ if (!dryRun && err instanceof _chunkKB2ANVVRcjs.AutotaskError) {
8068
8078
  err.resourceIds = [id];
8069
8079
  err.suggestedAction = `Partial transfer: ${applied.length} of ${ids.length} companies were re-owned (ids: ${applied.join(", ") || "none"}); id ${id} failed. Re-run transferOwnership for the remaining ids (from ${id} on).`;
8070
8080
  }
@@ -8074,7 +8084,7 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
8074
8084
  if (dryRun) {
8075
8085
  const anyChange = changes.some((c) => c.fromOwnerResourceID !== c.toOwnerResourceID);
8076
8086
  return {
8077
- ..._chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
8087
+ ..._chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
8078
8088
  operation: "resources.transferOwnership",
8079
8089
  method: "PUT",
8080
8090
  path: "/V1.0/Companies",
@@ -8098,7 +8108,7 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
8098
8108
  }
8099
8109
 
8100
8110
  // src/resources/resources.ts
8101
- var ResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8111
+ var ResourcesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8102
8112
 
8103
8113
  constructor(http, clientConfig, pageSize) {
8104
8114
  super(http, {
@@ -8171,7 +8181,7 @@ var ResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8171
8181
 
8172
8182
  // src/resources/special/resource_time_off_additional.ts
8173
8183
  async function getByResource(_resource, resourceId, http) {
8174
- const numericResource = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, resourceId, "resourceId");
8184
+ const numericResource = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, resourceId, "resourceId");
8175
8185
  const res = await http.request({
8176
8186
  method: "GET",
8177
8187
  path: `/V1.0/Resources/${numericResource}/TimeOffAdditional`,
@@ -8185,11 +8195,11 @@ async function getByResource(_resource, resourceId, http) {
8185
8195
  if (typeof item === "object" && !Array.isArray(item)) return [item];
8186
8196
  }
8187
8197
  }
8188
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, "resource_time_off_additional.getByResource").items;
8198
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, "resource_time_off_additional.getByResource").items;
8189
8199
  }
8190
8200
 
8191
8201
  // src/resources/resource_time_off_additional.ts
8192
- var ResourceTimeOffAdditionalResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8202
+ var ResourceTimeOffAdditionalResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8193
8203
  constructor(http, pageSize) {
8194
8204
  super(http, {
8195
8205
  key: "resource_time_off_additional",
@@ -8228,7 +8238,7 @@ var ResourceTimeOffAdditionalResource = class extends _chunkIHRXVIUUcjs.BaseReso
8228
8238
  };
8229
8239
 
8230
8240
  // src/resources/resource_time_off_approvers.ts
8231
- var ResourceTimeOffApproversResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8241
+ var ResourceTimeOffApproversResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8232
8242
  constructor(http, pageSize) {
8233
8243
  super(http, {
8234
8244
  key: "resource_time_off_approvers",
@@ -8271,29 +8281,29 @@ var ResourceTimeOffApproversResource = class extends _chunkIHRXVIUUcjs.BaseResou
8271
8281
 
8272
8282
  // src/resources/special/resource_time_off_balances.ts
8273
8283
  async function getByResource2(_resource, resourceId, http) {
8274
- const numericResource = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, resourceId, "resourceId");
8284
+ const numericResource = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, resourceId, "resourceId");
8275
8285
  const res = await http.request({
8276
8286
  method: "GET",
8277
8287
  path: `/V1.0/Resources/${numericResource}/TimeOffBalances`,
8278
8288
  operation: "resource_time_off_balances.getByResource"
8279
8289
  });
8280
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, "resource_time_off_balances.getByResource").items;
8290
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, "resource_time_off_balances.getByResource").items;
8281
8291
  }
8282
8292
  async function getByYear(_resource, resourceId, year, http) {
8283
- const numericResource = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, resourceId, "resourceId");
8293
+ const numericResource = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, resourceId, "resourceId");
8284
8294
  if (!Number.isSafeInteger(year) || year < 1) {
8285
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("getByYear: year must be a positive integer");
8295
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("getByYear: year must be a positive integer");
8286
8296
  }
8287
8297
  const res = await http.request({
8288
8298
  method: "GET",
8289
8299
  path: `/V1.0/Resources/${numericResource}/TimeOffBalances/${year}`,
8290
8300
  operation: "resource_time_off_balances.getByYear"
8291
8301
  });
8292
- return _chunkIHRXVIUUcjs.unwrapItem.call(void 0, res, year, "resource_time_off_balances.getByYear");
8302
+ return _chunkKB2ANVVRcjs.unwrapItem.call(void 0, res, year, "resource_time_off_balances.getByYear");
8293
8303
  }
8294
8304
 
8295
8305
  // src/resources/resource_time_off_balances.ts
8296
- var ResourceTimeOffBalancesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8306
+ var ResourceTimeOffBalancesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8297
8307
  constructor(http, pageSize) {
8298
8308
  super(http, {
8299
8309
  key: "resource_time_off_balances",
@@ -8331,7 +8341,7 @@ var ResourceTimeOffBalancesResource = class extends _chunkIHRXVIUUcjs.BaseResour
8331
8341
  };
8332
8342
 
8333
8343
  // src/resources/roles.ts
8334
- var RolesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8344
+ var RolesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8335
8345
  constructor(http, pageSize) {
8336
8346
  super(http, {
8337
8347
  key: "roles",
@@ -8398,7 +8408,7 @@ var RolesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8398
8408
  };
8399
8409
 
8400
8410
  // src/resources/service_calls.ts
8401
- var ServiceCallsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8411
+ var ServiceCallsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8402
8412
  constructor(http, pageSize) {
8403
8413
  super(http, {
8404
8414
  key: "service_calls",
@@ -8467,7 +8477,7 @@ var ServiceCallsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8467
8477
  };
8468
8478
 
8469
8479
  // src/resources/service_call_task_resources.ts
8470
- var ServiceCallTaskResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8480
+ var ServiceCallTaskResourcesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8471
8481
  constructor(http, pageSize) {
8472
8482
  super(http, {
8473
8483
  key: "service_call_task_resources",
@@ -8524,7 +8534,7 @@ var ServiceCallTaskResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResou
8524
8534
  };
8525
8535
 
8526
8536
  // src/resources/service_call_tasks.ts
8527
- var ServiceCallTasksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8537
+ var ServiceCallTasksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8528
8538
  constructor(http, pageSize) {
8529
8539
  super(http, {
8530
8540
  key: "service_call_tasks",
@@ -8581,7 +8591,7 @@ var ServiceCallTasksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8581
8591
  };
8582
8592
 
8583
8593
  // src/resources/service_call_ticket_resources.ts
8584
- var ServiceCallTicketResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8594
+ var ServiceCallTicketResourcesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8585
8595
  constructor(http, pageSize) {
8586
8596
  super(http, {
8587
8597
  key: "service_call_ticket_resources",
@@ -8638,7 +8648,7 @@ var ServiceCallTicketResourcesResource = class extends _chunkIHRXVIUUcjs.BaseRes
8638
8648
  };
8639
8649
 
8640
8650
  // src/resources/service_call_tickets.ts
8641
- var ServiceCallTicketsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8651
+ var ServiceCallTicketsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8642
8652
  constructor(http, pageSize) {
8643
8653
  super(http, {
8644
8654
  key: "service_call_tickets",
@@ -8695,7 +8705,7 @@ var ServiceCallTicketsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8695
8705
  };
8696
8706
 
8697
8707
  // src/resources/service_level_agreement_results.ts
8698
- var ServiceLevelAgreementResultsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8708
+ var ServiceLevelAgreementResultsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8699
8709
  constructor(http, pageSize) {
8700
8710
  super(http, {
8701
8711
  key: "service_level_agreement_results",
@@ -8734,7 +8744,7 @@ var ServiceLevelAgreementResultsResource = class extends _chunkIHRXVIUUcjs.BaseR
8734
8744
  };
8735
8745
 
8736
8746
  // src/resources/services.ts
8737
- var ServicesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8747
+ var ServicesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8738
8748
  constructor(http, pageSize) {
8739
8749
  super(http, {
8740
8750
  key: "services",
@@ -8802,7 +8812,7 @@ var ServicesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8802
8812
  };
8803
8813
 
8804
8814
  // src/resources/skills.ts
8805
- var SkillsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8815
+ var SkillsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8806
8816
  constructor(http, pageSize) {
8807
8817
  super(http, {
8808
8818
  key: "skills",
@@ -8846,7 +8856,7 @@ var SkillsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8846
8856
  };
8847
8857
 
8848
8858
  // src/resources/subscription_periods.ts
8849
- var SubscriptionPeriodsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8859
+ var SubscriptionPeriodsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8850
8860
  constructor(http, pageSize) {
8851
8861
  super(http, {
8852
8862
  key: "subscription_periods",
@@ -8885,7 +8895,7 @@ var SubscriptionPeriodsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8885
8895
  };
8886
8896
 
8887
8897
  // src/resources/subscriptions.ts
8888
- var SubscriptionsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8898
+ var SubscriptionsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8889
8899
  constructor(http, pageSize) {
8890
8900
  super(http, {
8891
8901
  key: "subscriptions",
@@ -8954,7 +8964,7 @@ var SubscriptionsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8954
8964
  };
8955
8965
 
8956
8966
  // src/resources/survey_results.ts
8957
- var SurveyResultsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8967
+ var SurveyResultsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8958
8968
  constructor(http, pageSize) {
8959
8969
  super(http, {
8960
8970
  key: "survey_results",
@@ -8993,7 +9003,7 @@ var SurveyResultsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
8993
9003
  };
8994
9004
 
8995
9005
  // src/resources/surveys.ts
8996
- var SurveysResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9006
+ var SurveysResource = class extends _chunkKB2ANVVRcjs.BaseResource {
8997
9007
  constructor(http, pageSize) {
8998
9008
  super(http, {
8999
9009
  key: "surveys",
@@ -9037,7 +9047,7 @@ var SurveysResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9037
9047
  };
9038
9048
 
9039
9049
  // src/resources/tag_aliases.ts
9040
- var TagAliasesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9050
+ var TagAliasesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9041
9051
  constructor(http, pageSize) {
9042
9052
  super(http, {
9043
9053
  key: "tag_aliases",
@@ -9094,7 +9104,7 @@ var TagAliasesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9094
9104
  };
9095
9105
 
9096
9106
  // src/resources/tag_groups.ts
9097
- var TagGroupsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9107
+ var TagGroupsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9098
9108
  constructor(http, pageSize) {
9099
9109
  super(http, {
9100
9110
  key: "tag_groups",
@@ -9163,7 +9173,7 @@ var TagGroupsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9163
9173
  };
9164
9174
 
9165
9175
  // src/resources/tags.ts
9166
- var TagsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9176
+ var TagsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9167
9177
  constructor(http, pageSize) {
9168
9178
  super(http, {
9169
9179
  key: "tags",
@@ -9232,7 +9242,7 @@ var TagsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9232
9242
  };
9233
9243
 
9234
9244
  // src/resources/task_secondary_resources.ts
9235
- var TaskSecondaryResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9245
+ var TaskSecondaryResourcesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9236
9246
  constructor(http, pageSize) {
9237
9247
  super(http, {
9238
9248
  key: "task_secondary_resources",
@@ -9289,7 +9299,7 @@ var TaskSecondaryResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResourc
9289
9299
  };
9290
9300
 
9291
9301
  // src/resources/tasks.ts
9292
- var TasksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9302
+ var TasksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9293
9303
  constructor(http, pageSize) {
9294
9304
  super(http, {
9295
9305
  key: "tasks",
@@ -9377,7 +9387,7 @@ var ThresholdInformationResource = class {
9377
9387
  };
9378
9388
 
9379
9389
  // src/resources/ticket_additional_configuration_items.ts
9380
- var TicketAdditionalConfigurationItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9390
+ var TicketAdditionalConfigurationItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9381
9391
  constructor(http, pageSize) {
9382
9392
  super(http, {
9383
9393
  key: "ticket_additional_configuration_items",
@@ -9434,7 +9444,7 @@ var TicketAdditionalConfigurationItemsResource = class extends _chunkIHRXVIUUcjs
9434
9444
  };
9435
9445
 
9436
9446
  // src/resources/ticket_additional_contacts.ts
9437
- var TicketAdditionalContactsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9447
+ var TicketAdditionalContactsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9438
9448
  constructor(http, pageSize) {
9439
9449
  super(http, {
9440
9450
  key: "ticket_additional_contacts",
@@ -9491,7 +9501,7 @@ var TicketAdditionalContactsResource = class extends _chunkIHRXVIUUcjs.BaseResou
9491
9501
  };
9492
9502
 
9493
9503
  // src/resources/ticket_attachments.ts
9494
- var TicketAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9504
+ var TicketAttachmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9495
9505
  constructor(http, pageSize) {
9496
9506
  super(http, {
9497
9507
  key: "ticket_attachments",
@@ -9553,7 +9563,7 @@ var TicketAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9553
9563
  };
9554
9564
 
9555
9565
  // src/resources/ticket_categories.ts
9556
- var TicketCategoriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9566
+ var TicketCategoriesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9557
9567
  constructor(http, pageSize) {
9558
9568
  super(http, {
9559
9569
  key: "ticket_categories",
@@ -9612,7 +9622,7 @@ var TicketCategoriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9612
9622
  };
9613
9623
 
9614
9624
  // src/resources/ticket_category_field_defaults.ts
9615
- var TicketCategoryFieldDefaultsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9625
+ var TicketCategoryFieldDefaultsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9616
9626
  constructor(http, pageSize) {
9617
9627
  super(http, {
9618
9628
  key: "ticket_category_field_defaults",
@@ -9654,7 +9664,7 @@ var TicketCategoryFieldDefaultsResource = class extends _chunkIHRXVIUUcjs.BaseRe
9654
9664
  };
9655
9665
 
9656
9666
  // src/resources/ticket_change_request_approvals.ts
9657
- var TicketChangeRequestApprovalsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9667
+ var TicketChangeRequestApprovalsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9658
9668
  constructor(http, pageSize) {
9659
9669
  super(http, {
9660
9670
  key: "ticket_change_request_approvals",
@@ -9711,7 +9721,7 @@ var TicketChangeRequestApprovalsResource = class extends _chunkIHRXVIUUcjs.BaseR
9711
9721
  };
9712
9722
 
9713
9723
  // src/resources/ticket_charges.ts
9714
- var TicketChargesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9724
+ var TicketChargesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9715
9725
  constructor(http, pageSize) {
9716
9726
  super(http, {
9717
9727
  key: "ticket_charges",
@@ -9782,7 +9792,7 @@ var TicketChargesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9782
9792
  };
9783
9793
 
9784
9794
  // src/resources/ticket_checklist_items.ts
9785
- var TicketChecklistItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9795
+ var TicketChecklistItemsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9786
9796
  constructor(http, pageSize) {
9787
9797
  super(http, {
9788
9798
  key: "ticket_checklist_items",
@@ -9848,7 +9858,7 @@ var TicketChecklistItemsResource = class extends _chunkIHRXVIUUcjs.BaseResource
9848
9858
  };
9849
9859
 
9850
9860
  // src/resources/ticket_checklist_libraries.ts
9851
- var TicketChecklistLibrariesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9861
+ var TicketChecklistLibrariesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9852
9862
  constructor(http, pageSize) {
9853
9863
  super(http, {
9854
9864
  key: "ticket_checklist_libraries",
@@ -9872,9 +9882,9 @@ var TicketChecklistLibrariesResource = class extends _chunkIHRXVIUUcjs.BaseResou
9872
9882
  * `dryRun: true` returns the pinned envelope (document existence is unverifiable in the MVP
9873
9883
  * surface — no documents read op — and never issues the POST). */
9874
9884
  async attachToDocument(documentID, data, opts = {}) {
9875
- const n = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, documentID, "documentID");
9885
+ const n = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, documentID, "documentID");
9876
9886
  if (opts.dryRun === true) {
9877
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
9887
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
9878
9888
  operation: "ticket_checklist_libraries.attachToDocument",
9879
9889
  method: "POST",
9880
9890
  path: `/V1.0/Documents/${n}/ChecklistLibraries`,
@@ -9891,7 +9901,7 @@ var TicketChecklistLibrariesResource = class extends _chunkIHRXVIUUcjs.BaseResou
9891
9901
  body: { ...data },
9892
9902
  operation: "ticket_checklist_libraries.attachToDocument"
9893
9903
  });
9894
- return _chunkIHRXVIUUcjs.unwrapOperation.call(void 0, res);
9904
+ return _chunkKB2ANVVRcjs.unwrapOperation.call(void 0, res);
9895
9905
  }
9896
9906
  /** Resolve a TicketChecklistLibrary from a numeric id (or, where the vendor indexes a primary text field,
9897
9907
  * from a numeric id — this resource has no primary text field). A numeric id miss throws NOT_FOUND;
@@ -9907,7 +9917,7 @@ var TicketChecklistLibrariesResource = class extends _chunkIHRXVIUUcjs.BaseResou
9907
9917
  };
9908
9918
 
9909
9919
  // src/resources/ticket_history.ts
9910
- var TicketHistoryResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9920
+ var TicketHistoryResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9911
9921
  constructor(http, pageSize) {
9912
9922
  super(http, {
9913
9923
  key: "ticket_history",
@@ -9946,7 +9956,7 @@ var TicketHistoryResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9946
9956
  };
9947
9957
 
9948
9958
  // src/resources/ticket_note_attachments.ts
9949
- var TicketNoteAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
9959
+ var TicketNoteAttachmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
9950
9960
  constructor(http, pageSize) {
9951
9961
  super(http, {
9952
9962
  key: "ticket_note_attachments",
@@ -10008,7 +10018,7 @@ var TicketNoteAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource
10008
10018
  };
10009
10019
 
10010
10020
  // src/resources/ticket_notes.ts
10011
- var TicketNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
10021
+ var TicketNotesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
10012
10022
  constructor(http, pageSize) {
10013
10023
  super(http, {
10014
10024
  key: "ticket_notes",
@@ -10067,7 +10077,7 @@ var TicketNotesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
10067
10077
  };
10068
10078
 
10069
10079
  // src/resources/ticket_note_webhooks.ts
10070
- var TicketNoteWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
10080
+ var TicketNoteWebhooksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
10071
10081
  constructor(http, pageSize) {
10072
10082
  super(http, {
10073
10083
  key: "ticket_note_webhooks",
@@ -10143,7 +10153,7 @@ var TicketNoteWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
10143
10153
  };
10144
10154
 
10145
10155
  // src/resources/ticket_secondary_resources.ts
10146
- var TicketSecondaryResourcesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
10156
+ var TicketSecondaryResourcesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
10147
10157
  constructor(http, pageSize) {
10148
10158
  super(http, {
10149
10159
  key: "ticket_secondary_resources",
@@ -10210,9 +10220,9 @@ async function fetchTicket(http, id, operation) {
10210
10220
  });
10211
10221
  const body = res;
10212
10222
  if (body === null || !("item" in body)) {
10213
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`Ticket ${id} not found (unexpected envelope shape)`, { resourceIds: [id] });
10223
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`Ticket ${id} not found (unexpected envelope shape)`, { resourceIds: [id] });
10214
10224
  }
10215
- if (body.item === null || body.item === void 0) throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`Ticket ${id} not found`, { resourceIds: [id] });
10225
+ if (body.item === null || body.item === void 0) throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`Ticket ${id} not found`, { resourceIds: [id] });
10216
10226
  return body.item;
10217
10227
  }
10218
10228
  async function ticketQueryItems(http, path, filter, maxRecords, operation) {
@@ -10223,29 +10233,29 @@ async function ticketQueryItems(http, path, filter, maxRecords, operation) {
10223
10233
  body: { MaxRecords: maxRecords, filter },
10224
10234
  operation
10225
10235
  });
10226
- return _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res).items;
10236
+ return _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res).items;
10227
10237
  }
10228
10238
  function isRouteUnavailable(err) {
10229
- return _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) && (err.httpStatus === 404 || err.httpStatus === 500);
10239
+ return _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) && (err.httpStatus === 404 || err.httpStatus === 500);
10230
10240
  }
10231
10241
  function routeFact(route, path, err) {
10232
10242
  return {
10233
10243
  route,
10234
10244
  path,
10235
- httpStatus: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) && typeof err.httpStatus === "number" ? err.httpStatus : null
10245
+ httpStatus: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) && typeof err.httpStatus === "number" ? err.httpStatus : null
10236
10246
  };
10237
10247
  }
10238
10248
  function childDeclaresQuery(resourceKey) {
10239
- return _chunkCSRCMBZ2cjs.CAPABILITIES.some(
10249
+ return _chunkCXXNONRPcjs.CAPABILITIES.some(
10240
10250
  (c) => c.id === `${resourceKey}.query` && (c.status === "implemented" || c.status === "tested")
10241
10251
  );
10242
10252
  }
10243
10253
  function planScopedPath(resourceKey, ticketId) {
10244
10254
  if (!childDeclaresQuery(resourceKey)) return null;
10245
- const entry = _chunkIHRXVIUUcjs.RELATIONSHIP_MAP[resourceKey];
10255
+ const entry = _chunkKB2ANVVRcjs.RELATIONSHIP_MAP[resourceKey];
10246
10256
  const parent = entry === void 0 ? null : entry.parent;
10247
10257
  if (parent === null || parent.resource !== "tickets" || parent.segment === null || parent.field === null) return null;
10248
- const parentPath = _optionalChain([_chunkIHRXVIUUcjs.RELATIONSHIP_MAP, 'access', _52 => _52[parent.resource], 'optionalAccess', _53 => _53.path]);
10258
+ const parentPath = _optionalChain([_chunkKB2ANVVRcjs.RELATIONSHIP_MAP, 'access', _52 => _52[parent.resource], 'optionalAccess', _53 => _53.path]);
10249
10259
  if (parentPath === null || parentPath === void 0) return null;
10250
10260
  return `/V1.0/${parentPath}/${ticketId}/${parent.segment}`;
10251
10261
  }
@@ -10284,14 +10294,14 @@ async function scopedCollectionRead(http, startPath, limit, operation, accept) {
10284
10294
  break;
10285
10295
  }
10286
10296
  const body = await http.request({ method: "GET", path: target, operation });
10287
- const { items: pageItems, pageDetails } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, body, operation);
10297
+ const { items: pageItems, pageDetails } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, body, operation);
10288
10298
  nextCursor = pageDetails.nextPageUrl;
10289
10299
  pages += 1;
10290
10300
  const window = pageItems.slice(0, Math.max(0, limit - items.length));
10291
10301
  for (const row of window) if (accept(row)) items.push(row);
10292
10302
  if (items.length >= limit) break;
10293
10303
  if (nextCursor === null || pageItems.length === 0) break;
10294
- target = _chunkIHRXVIUUcjs.cursorToPath.call(void 0, http.baseUrl, nextCursor);
10304
+ target = _chunkKB2ANVVRcjs.cursorToPath.call(void 0, http.baseUrl, nextCursor);
10295
10305
  }
10296
10306
  const capped = items.length >= limit || guard && nextCursor !== null;
10297
10307
  return { items, capped };
@@ -10325,7 +10335,7 @@ function truncate(text, limit) {
10325
10335
  }
10326
10336
  async function slaHealthCheck(_resource, id, opts = {}, http) {
10327
10337
  void opts;
10328
- const ticketId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
10338
+ const ticketId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
10329
10339
  await fetchTicket(http, ticketId, "tickets.slaHealthCheck");
10330
10340
  const rows = await ticketQueryItems(
10331
10341
  http,
@@ -10350,9 +10360,9 @@ async function slaHealthCheck(_resource, id, opts = {}, http) {
10350
10360
  async function summary(_resource, id, opts = {}, http) {
10351
10361
  const limit = opts.summaryTextLimit === void 0 ? 500 : Math.trunc(opts.summaryTextLimit);
10352
10362
  if (!Number.isInteger(limit) || limit < 1) {
10353
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`summaryTextLimit must be an integer >= 1 (got ${String(opts.summaryTextLimit)})`);
10363
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`summaryTextLimit must be an integer >= 1 (got ${String(opts.summaryTextLimit)})`);
10354
10364
  }
10355
- const ticketId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
10365
+ const ticketId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
10356
10366
  const ticket = await fetchTicket(http, ticketId, "tickets.summary");
10357
10367
  const desc = truncate(ticket.description, limit);
10358
10368
  const now = _nullishCoalesce(opts.now, () => ( /* @__PURE__ */ new Date()));
@@ -10379,13 +10389,13 @@ async function summary(_resource, id, opts = {}, http) {
10379
10389
  }
10380
10390
  async function timeline(_resource, id, opts = {}, http) {
10381
10391
  const limit = opts.limit === void 0 ? 100 : Math.trunc(opts.limit);
10382
- if (!Number.isInteger(limit) || limit < 1) throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`limit must be an integer >= 1 (got ${String(opts.limit)})`);
10392
+ if (!Number.isInteger(limit) || limit < 1) throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`limit must be an integer >= 1 (got ${String(opts.limit)})`);
10383
10393
  const bounded = Math.min(limit, 500);
10384
10394
  const textLimit = opts.textLimit === void 0 ? 500 : Math.trunc(opts.textLimit);
10385
10395
  if (!Number.isInteger(textLimit) || textLimit < 1) {
10386
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`textLimit must be an integer >= 1 (got ${String(opts.textLimit)})`);
10396
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`textLimit must be an integer >= 1 (got ${String(opts.textLimit)})`);
10387
10397
  }
10388
- const ticketId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
10398
+ const ticketId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
10389
10399
  await fetchTicket(http, ticketId, "tickets.timeline");
10390
10400
  const dateFilters = (field) => {
10391
10401
  const f = [{ field: "ticketID", op: "eq", value: ticketId }];
@@ -10472,14 +10482,14 @@ function isPositiveInt(v) {
10472
10482
  return typeof v === "number" && Number.isInteger(v) && v > 0;
10473
10483
  }
10474
10484
  function namedVendorFields(err) {
10475
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) return [];
10476
- const entries = _nullishCoalesce(_chunkIHRXVIUUcjs.parseVendorErrors.call(void 0, err.vendorError), () => ( []));
10485
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) return [];
10486
+ const entries = _nullishCoalesce(_chunkKB2ANVVRcjs.parseVendorErrors.call(void 0, err.vendorError), () => ( []));
10477
10487
  const out = /* @__PURE__ */ new Set();
10478
10488
  for (const e of entries) if (e.field !== void 0) out.add(e.field);
10479
10489
  return [...out];
10480
10490
  }
10481
10491
  function vendorDetailOf(err) {
10482
- return _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? _chunkIHRXVIUUcjs.formatVendorDetail.call(void 0, err.vendorError) : void 0;
10492
+ return _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? _chunkKB2ANVVRcjs.formatVendorDetail.call(void 0, err.vendorError) : void 0;
10483
10493
  }
10484
10494
  async function fetchItem(http, path, operation) {
10485
10495
  const res = await http.request({ method: "GET", path, operation });
@@ -10500,8 +10510,8 @@ function operationId(res) {
10500
10510
  return typeof body.itemId === "number" ? body.itemId : typeof body.id === "number" ? body.id : void 0;
10501
10511
  }
10502
10512
  function discoveryMerge(err, body, defaults) {
10503
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) return null;
10504
- const entries = _chunkIHRXVIUUcjs.parseVendorErrors.call(void 0, err.vendorError);
10513
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) return null;
10514
+ const entries = _chunkKB2ANVVRcjs.parseVendorErrors.call(void 0, err.vendorError);
10505
10515
  if (entries === void 0) return null;
10506
10516
  for (const entry of entries) {
10507
10517
  const field = entry.field;
@@ -10513,7 +10523,7 @@ function discoveryMerge(err, body, defaults) {
10513
10523
  }
10514
10524
  function stepErrorText(code, err) {
10515
10525
  const detail = vendorDetailOf(err);
10516
- const base = _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.message : String(err);
10526
+ const base = _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.message : String(err);
10517
10527
  return detail ? `${code}: ${detail}` : `${code}: ${base}`;
10518
10528
  }
10519
10529
  var DEFAULT_TICKET_PRIORITY = 3;
@@ -10522,7 +10532,7 @@ var DEFAULT_NOTE_TYPE = 1;
10522
10532
  var DEFAULT_PUBLISH = 1;
10523
10533
  var PUBLISH_VALUES = /* @__PURE__ */ new Set([1, 2, 4]);
10524
10534
  var SAFE_TICKET_CREATE_DEFAULTS = {};
10525
- var QueueRequiredError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10535
+ var QueueRequiredError = class extends _chunkKB2ANVVRcjs.AutotaskError {
10526
10536
  constructor(message, options = {}) {
10527
10537
  super(message, {
10528
10538
  code: "QUEUE_REQUIRED",
@@ -10533,13 +10543,13 @@ var QueueRequiredError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10533
10543
  this.name = "QueueRequiredError";
10534
10544
  }
10535
10545
  };
10536
- var TicketResourceInvalidError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10546
+ var TicketResourceInvalidError = class extends _chunkKB2ANVVRcjs.AutotaskError {
10537
10547
  constructor(message, options = {}) {
10538
10548
  super(message, { code: "RESOURCE_INVALID", category: "validation", ...options });
10539
10549
  this.name = "TicketResourceInvalidError";
10540
10550
  }
10541
10551
  };
10542
- var TicketCreateValidationFailedError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10552
+ var TicketCreateValidationFailedError = class extends _chunkKB2ANVVRcjs.AutotaskError {
10543
10553
  /** The vendor-named fields (empty when the 500 body named nothing parseable). */
10544
10554
 
10545
10555
  constructor(message, vendorFields, options = {}) {
@@ -10549,43 +10559,43 @@ var TicketCreateValidationFailedError = class extends _chunkIHRXVIUUcjs.Autotask
10549
10559
  }
10550
10560
  };
10551
10561
  async function openWithNoteAndAssign(resource, params, note, assign, opts, http) {
10552
- const companyID = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, _optionalChain([params, 'optionalAccess', _54 => _54.companyID]), "params.companyID");
10562
+ const companyID = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, _optionalChain([params, 'optionalAccess', _54 => _54.companyID]), "params.companyID");
10553
10563
  const title = _optionalChain([params, 'optionalAccess', _55 => _55.title]);
10554
10564
  if (typeof title !== "string" || title.trim() === "") {
10555
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("openWithNoteAndAssign: params.title is required (a non-empty string)", { operation: OP_OPEN });
10565
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("openWithNoteAndAssign: params.title is required (a non-empty string)", { operation: OP_OPEN });
10556
10566
  }
10557
10567
  const priority = _nullishCoalesce(params.priority, () => ( DEFAULT_TICKET_PRIORITY));
10558
10568
  const status = _nullishCoalesce(params.status, () => ( DEFAULT_TICKET_STATUS));
10559
10569
  if (!isPositiveInt(priority)) {
10560
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`openWithNoteAndAssign: params.priority must be a positive integer (got ${String(params.priority)})`, { operation: OP_OPEN });
10570
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`openWithNoteAndAssign: params.priority must be a positive integer (got ${String(params.priority)})`, { operation: OP_OPEN });
10561
10571
  }
10562
10572
  if (!isPositiveInt(status)) {
10563
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`openWithNoteAndAssign: params.status must be a positive integer (got ${String(params.status)})`, { operation: OP_OPEN });
10573
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`openWithNoteAndAssign: params.status must be a positive integer (got ${String(params.status)})`, { operation: OP_OPEN });
10564
10574
  }
10565
10575
  if (params.queueID !== void 0 && !isPositiveInt(params.queueID)) {
10566
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`openWithNoteAndAssign: params.queueID must be a positive integer (got ${String(params.queueID)})`, { operation: OP_OPEN });
10576
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`openWithNoteAndAssign: params.queueID must be a positive integer (got ${String(params.queueID)})`, { operation: OP_OPEN });
10567
10577
  }
10568
10578
  if (note !== void 0) {
10569
10579
  if (typeof note.description !== "string" || note.description.trim() === "") {
10570
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("openWithNoteAndAssign: note.description is required (a non-empty string)", { operation: OP_OPEN });
10580
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("openWithNoteAndAssign: note.description is required (a non-empty string)", { operation: OP_OPEN });
10571
10581
  }
10572
10582
  if (typeof note.title !== "string" || note.title.trim() === "") {
10573
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("openWithNoteAndAssign: note.title is required (a non-empty string) \u2014 the ww29 scoped note create 500s without it (S12-A live-verified: Missing Required Field: title; the S11-B proven note body is { title, description, noteType: 1, publish: 1 })", { operation: OP_OPEN });
10583
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("openWithNoteAndAssign: note.title is required (a non-empty string) \u2014 the ww29 scoped note create 500s without it (S12-A live-verified: Missing Required Field: title; the S11-B proven note body is { title, description, noteType: 1, publish: 1 })", { operation: OP_OPEN });
10574
10584
  }
10575
10585
  if (note.noteType !== void 0 && !isPositiveInt(note.noteType)) {
10576
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`openWithNoteAndAssign: note.noteType must be a positive integer (got ${String(note.noteType)})`, { operation: OP_OPEN });
10586
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`openWithNoteAndAssign: note.noteType must be a positive integer (got ${String(note.noteType)})`, { operation: OP_OPEN });
10577
10587
  }
10578
10588
  if (note.publish !== void 0 && !PUBLISH_VALUES.has(note.publish)) {
10579
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`openWithNoteAndAssign: note.publish must be an integer picklist value 1/2/4 (got ${String(note.publish)} \u2014 NOT a boolean)`, { operation: OP_OPEN });
10589
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`openWithNoteAndAssign: note.publish must be an integer picklist value 1/2/4 (got ${String(note.publish)} \u2014 NOT a boolean)`, { operation: OP_OPEN });
10580
10590
  }
10581
10591
  }
10582
- const assignee = assign === void 0 ? void 0 : _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, assign.resourceID, "assign.resourceID");
10592
+ const assignee = assign === void 0 ? void 0 : _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, assign.resourceID, "assign.resourceID");
10583
10593
  if (assign !== void 0 && assignee !== void 0 && (typeof assignee === "number" ? assignee < 1 : false)) {
10584
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`openWithNoteAndAssign: assign.resourceID must be a positive integer (got ${String(assignee)})`, { operation: OP_OPEN });
10594
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`openWithNoteAndAssign: assign.resourceID must be a positive integer (got ${String(assignee)})`, { operation: OP_OPEN });
10585
10595
  }
10586
10596
  const roleID = _optionalChain([assign, 'optionalAccess', _56 => _56.roleID]);
10587
10597
  if (assign !== void 0 && !isPositiveInt(roleID)) {
10588
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("openWithNoteAndAssign: assign.roleID is required (a positive integer) \u2014 the ww29 vendor requires BOTH assignedResourceID and assignedResourceRoleID when assigning a resource (S12-A live-verified: Data violation: When assigning a Resource, you must assign both a assignedResourceID and assignedResourceRoleID)", { operation: OP_OPEN });
10598
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("openWithNoteAndAssign: assign.roleID is required (a positive integer) \u2014 the ww29 vendor requires BOTH assignedResourceID and assignedResourceRoleID when assigning a resource (S12-A live-verified: Data violation: When assigning a Resource, you must assign both a assignedResourceID and assignedResourceRoleID)", { operation: OP_OPEN });
10589
10599
  }
10590
10600
  if (assign !== void 0 && assignee !== void 0) {
10591
10601
  const rid = assignee;
@@ -10620,7 +10630,7 @@ async function openWithNoteAndAssign(resource, params, note, assign, opts, http)
10620
10630
  if (assign !== void 0) {
10621
10631
  warnings.push(`the assignment is the v0.6.0 MERGE update (unredacted GET + collection PUT, 2 wire) setting assignedResourceID ${String(assignee)} + assignedResourceRoleID ${String(roleID)} (the vendor requires both \u2014 S12-A live-verified); a failure lands in steps[] as ASSIGN_FAILED (the applied ticketId is still returned).`);
10622
10632
  }
10623
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
10633
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
10624
10634
  {
10625
10635
  operation: OP_OPEN,
10626
10636
  method: "POST",
@@ -10662,8 +10672,8 @@ async function openWithNoteAndAssign(resource, params, note, assign, opts, http)
10662
10672
  `openWithNoteAndAssign: the vendor rejected the ticket create naming 'queueID' (the ww29 live-required set is { title, status, priority, companyID, queueID }) and the node never guesses a queue${detail ? ` \u2014 ${detail}` : ""}`,
10663
10673
  {
10664
10674
  operation: OP_OPEN,
10665
- httpStatus: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.httpStatus : void 0,
10666
- vendorError: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.vendorError : void 0
10675
+ httpStatus: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.httpStatus : void 0,
10676
+ vendorError: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.vendorError : void 0
10667
10677
  }
10668
10678
  );
10669
10679
  }
@@ -10678,8 +10688,8 @@ async function openWithNoteAndAssign(resource, params, note, assign, opts, http)
10678
10688
  named,
10679
10689
  {
10680
10690
  operation: OP_OPEN,
10681
- httpStatus: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.httpStatus : void 0,
10682
- vendorError: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.vendorError : void 0,
10691
+ httpStatus: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.httpStatus : void 0,
10692
+ vendorError: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.vendorError : void 0,
10683
10693
  resourceIds: [companyID]
10684
10694
  }
10685
10695
  );
@@ -10701,10 +10711,10 @@ async function openWithNoteAndAssign(resource, params, note, assign, opts, http)
10701
10711
  try {
10702
10712
  const current = await fetchItemUnredacted(http, `/V1.0/Tickets/${ticketId}`, OP_OPEN);
10703
10713
  if (current === null) {
10704
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`openWithNoteAndAssign: ticket ${ticketId} vanished between the create and the assign merge read`, { operation: OP_OPEN, resourceIds: [ticketId] });
10714
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`openWithNoteAndAssign: ticket ${ticketId} vanished between the create and the assign merge read`, { operation: OP_OPEN, resourceIds: [ticketId] });
10705
10715
  }
10706
10716
  ticketNumber = typeof current.ticketNumber === "string" ? current.ticketNumber : null;
10707
- const merged = _chunkIHRXVIUUcjs.mergePartialBody.call(void 0, current, { id: ticketId, assignedResourceID: assignee, assignedResourceRoleID: roleID });
10717
+ const merged = _chunkKB2ANVVRcjs.mergePartialBody.call(void 0, current, { id: ticketId, assignedResourceID: assignee, assignedResourceRoleID: roleID });
10708
10718
  merged.id = ticketId;
10709
10719
  await http.request({ method: "PUT", path: "/V1.0/Tickets", body: merged, operation: OP_OPEN });
10710
10720
  assigned = true;
@@ -10725,7 +10735,7 @@ async function openWithNoteAndAssign(resource, params, note, assign, opts, http)
10725
10735
  var STATUS_REQUIRED_FIELDS = {
10726
10736
  // <discovery output lands here — e.g. 8: { requiredFields: ['dueDateTime'], safeDefaults: { dueDateTime: '<now>' } }>
10727
10737
  };
10728
- var StatusUnknownError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10738
+ var StatusUnknownError = class extends _chunkKB2ANVVRcjs.AutotaskError {
10729
10739
  /** The live picklist size (the message names it; the values + labels are via operations.fieldCatalog with labels: true). */
10730
10740
 
10731
10741
  constructor(message, options = {}) {
@@ -10739,7 +10749,7 @@ var StatusUnknownError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10739
10749
  this.picklistCount = _nullishCoalesce(options.picklistCount, () => ( 0));
10740
10750
  }
10741
10751
  };
10742
- var StatusFieldsRequiredError = class extends _chunkIHRXVIUUcjs.AutotaskError {
10752
+ var StatusFieldsRequiredError = class extends _chunkKB2ANVVRcjs.AutotaskError {
10743
10753
 
10744
10754
 
10745
10755
 
@@ -10768,16 +10778,16 @@ async function readLiveStatusSet(resource) {
10768
10778
  }
10769
10779
  var GUARD_DEGRADED_WARNING = "the tenant's live status picklist metadata was unavailable (the local guard is degraded for this call \u2014 the W-A4 wall or a metadata failure); the vendor's own validation is the final authority on the status value";
10770
10780
  async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10771
- const ticketId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
10781
+ const ticketId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
10772
10782
  if (!isPositiveInt(targetStatus)) {
10773
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`changeStatus: targetStatus must be a positive integer (got ${String(targetStatus)})`, { operation: OP_STATUS });
10783
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`changeStatus: targetStatus must be a positive integer (got ${String(targetStatus)})`, { operation: OP_STATUS });
10774
10784
  }
10775
10785
  let liveStatus = null;
10776
10786
  try {
10777
10787
  const ids = await readLiveStatusSet(resource);
10778
10788
  if (ids.size > 0) liveStatus = ids;
10779
10789
  } catch (err) {
10780
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.code === "ABORTED") throw err;
10790
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.code === "ABORTED") throw err;
10781
10791
  }
10782
10792
  if (liveStatus !== null && !liveStatus.has(targetStatus)) {
10783
10793
  _optionalChain([http, 'access', _57 => _57.fieldCache, 'optionalAccess', _58 => _58.invalidate, 'call', _59 => _59("tickets")]);
@@ -10787,7 +10797,7 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10787
10797
  const freshIds = await readLiveStatusSet(resource);
10788
10798
  if (freshIds.size > 0) freshStatus = freshIds;
10789
10799
  } catch (err) {
10790
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.code === "ABORTED") throw err;
10800
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.code === "ABORTED") throw err;
10791
10801
  freshStatus = null;
10792
10802
  reReadFailed = true;
10793
10803
  }
@@ -10804,16 +10814,16 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10804
10814
  }
10805
10815
  const guardDegraded = liveStatus === null;
10806
10816
  if (fields !== void 0 && (typeof fields !== "object" || fields === null || Array.isArray(fields))) {
10807
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("changeStatus: fields must be a plain object of ticket fields (or omitted)", { operation: OP_STATUS });
10817
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("changeStatus: fields must be a plain object of ticket fields (or omitted)", { operation: OP_STATUS });
10808
10818
  }
10809
10819
  const current = await fetchItemUnredacted(http, `/V1.0/Tickets/${ticketId}`, OP_STATUS);
10810
10820
  if (current === null) {
10811
- throw new (0, _chunkIHRXVIUUcjs.NotFoundError)(`changeStatus: ticket ${ticketId} was not found (tickets.get returned item: null)`, { operation: OP_STATUS, resourceIds: [ticketId] });
10821
+ throw new (0, _chunkKB2ANVVRcjs.NotFoundError)(`changeStatus: ticket ${ticketId} was not found (tickets.get returned item: null)`, { operation: OP_STATUS, resourceIds: [ticketId] });
10812
10822
  }
10813
10823
  const previousStatus = typeof current.status === "number" ? current.status : null;
10814
10824
  if (previousStatus === targetStatus) {
10815
10825
  if (opts.dryRun === true) {
10816
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
10826
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
10817
10827
  {
10818
10828
  operation: OP_STATUS,
10819
10829
  method: "PUT",
@@ -10867,7 +10877,7 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10867
10877
  if (mapEntry === void 0) {
10868
10878
  warnings.push(`status ${targetStatus} has no entry in the live-discovered required-field map yet \u2014 if the vendor 500 names a required field without a safe default, the apply throws the typed STATUS_FIELDS_REQUIRED (the caller supplies the value; never a blind retry).`);
10869
10879
  }
10870
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
10880
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
10871
10881
  {
10872
10882
  operation: OP_STATUS,
10873
10883
  method: "PUT",
@@ -10886,7 +10896,7 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10886
10896
  );
10887
10897
  }
10888
10898
  const safeDefaults = _nullishCoalesce(_optionalChain([mapEntry, 'optionalAccess', _62 => _62.safeDefaults]), () => ( {}));
10889
- const body = _chunkIHRXVIUUcjs.mergePartialBody.call(void 0, current, mergeData);
10899
+ const body = _chunkKB2ANVVRcjs.mergePartialBody.call(void 0, current, mergeData);
10890
10900
  body.id = ticketId;
10891
10901
  let merges = 0;
10892
10902
  for (; ; ) {
@@ -10910,8 +10920,8 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10910
10920
  { vendorFields: named, currentStatus: previousStatus, targetStatus, currentValues },
10911
10921
  {
10912
10922
  operation: OP_STATUS,
10913
- httpStatus: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.httpStatus : void 0,
10914
- vendorError: _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? err.vendorError : void 0,
10923
+ httpStatus: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.httpStatus : void 0,
10924
+ vendorError: _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? err.vendorError : void 0,
10915
10925
  resourceIds: [ticketId]
10916
10926
  }
10917
10927
  );
@@ -10921,7 +10931,7 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10921
10931
  }
10922
10932
  const verify = await fetchItem(http, `/V1.0/Tickets/${ticketId}`, OP_STATUS);
10923
10933
  if (verify === null) {
10924
- throw new (0, _chunkIHRXVIUUcjs.AutotaskError)(`changeStatus: the post-PUT read-back found no ticket ${ticketId} (the PUT 200ed but the record is gone)`, {
10934
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskError)(`changeStatus: the post-PUT read-back found no ticket ${ticketId} (the PUT 200ed but the record is gone)`, {
10925
10935
  code: "INVALID_RESPONSE",
10926
10936
  category: "server",
10927
10937
  operation: OP_STATUS,
@@ -10930,7 +10940,7 @@ async function changeStatus(resource, id, targetStatus, fields, opts, http) {
10930
10940
  }
10931
10941
  const finalStatus = typeof verify.status === "number" ? verify.status : null;
10932
10942
  if (finalStatus !== targetStatus) {
10933
- throw new (0, _chunkIHRXVIUUcjs.AutotaskError)(
10943
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskError)(
10934
10944
  `changeStatus: the post-PUT read-back shows status ${_nullishCoalesce(finalStatus, () => ( "unknown"))} (the vendor 200ed the PUT but did not apply ${targetStatus} \u2014 the F-A1 lesson: the 200 proves nothing)`,
10935
10945
  {
10936
10946
  code: "INVALID_RESPONSE",
@@ -10948,7 +10958,7 @@ var DEFAULT_PART_LIMIT = 50;
10948
10958
  function partLimit(value, name) {
10949
10959
  const n = value === void 0 ? DEFAULT_PART_LIMIT : Math.trunc(value);
10950
10960
  if (!Number.isInteger(n) || n < 1) {
10951
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`fullContext: ${name} must be an integer >= 1 (got ${String(value)})`);
10961
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`fullContext: ${name} must be an integer >= 1 (got ${String(value)})`);
10952
10962
  }
10953
10963
  return n;
10954
10964
  }
@@ -10964,7 +10974,7 @@ async function fullContext(resource, id, opts = {}, http) {
10964
10974
  const noteLimit = partLimit(opts.noteLimit, "noteLimit");
10965
10975
  const timeEntryLimit = partLimit(opts.timeEntryLimit, "timeEntryLimit");
10966
10976
  const textLimit = partLimit(opts.textLimit, "textLimit");
10967
- const ticketId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
10977
+ const ticketId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
10968
10978
  const ctx = await resource.getContext(ticketId);
10969
10979
  const op = "tickets.fullContext";
10970
10980
  const ticketFilter = [{ field: "ticketID", op: "eq", value: ticketId }];
@@ -11018,7 +11028,7 @@ async function fullContext(resource, id, opts = {}, http) {
11018
11028
  result.truncated = result.truncated || part.capped || historyRows.some((h) => h.detailTruncated === true);
11019
11029
  }
11020
11030
  if (opts.names === true) {
11021
- const builder = _chunkIHRXVIUUcjs.createNamePlan.call(void 0, _chunkIHRXVIUUcjs.TICKET_LABEL_FIELDS);
11031
+ const builder = _chunkKB2ANVVRcjs.createNamePlan.call(void 0, _chunkKB2ANVVRcjs.TICKET_LABEL_FIELDS);
11022
11032
  const t = ctx.ticket;
11023
11033
  builder.addResource(t["creatorResourceID"]);
11024
11034
  builder.addFk("contract", t["contractID"]);
@@ -11030,20 +11040,20 @@ async function fullContext(resource, id, opts = {}, http) {
11030
11040
  builder.addFk("billingCode", e["billingCodeID"]);
11031
11041
  builder.addFk("contract", e["contractID"]);
11032
11042
  }
11033
- const names = await _chunkIHRXVIUUcjs.resolveCompositeNames.call(void 0, http, builder.plan(), { maxNameReads: opts.maxNameReads });
11043
+ const names = await _chunkKB2ANVVRcjs.resolveCompositeNames.call(void 0, http, builder.plan(), { maxNameReads: opts.maxNameReads });
11034
11044
  const ticketRow = { ...ctx.ticket };
11035
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, ticketRow, "creatorResourceID", (v) => names.resourceName(v));
11036
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, ticketRow, "contractID", (v) => names.recordName("contract", v));
11037
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, ticketRow, "billingCodeID", (v) => names.recordName("billingCode", v));
11038
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, ticketRow, "assignedResourceRoleID", (v) => names.recordName("role", v));
11039
- for (const f of _chunkIHRXVIUUcjs.TICKET_LABEL_FIELDS) _chunkIHRXVIUUcjs.addLabelSibling.call(void 0, ticketRow, f, names);
11045
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, ticketRow, "creatorResourceID", (v) => names.resourceName(v));
11046
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, ticketRow, "contractID", (v) => names.recordName("contract", v));
11047
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, ticketRow, "billingCodeID", (v) => names.recordName("billingCode", v));
11048
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, ticketRow, "assignedResourceRoleID", (v) => names.recordName("role", v));
11049
+ for (const f of _chunkKB2ANVVRcjs.TICKET_LABEL_FIELDS) _chunkKB2ANVVRcjs.addLabelSibling.call(void 0, ticketRow, f, names);
11040
11050
  result.ticket = ticketRow;
11041
11051
  result.timeEntries.items = entriesPart.items.map((e) => {
11042
11052
  const row = { ...e };
11043
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, row, "resourceID", (v) => names.resourceName(v));
11044
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, row, "roleID", (v) => names.recordName("role", v));
11045
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, row, "billingCodeID", (v) => names.recordName("billingCode", v));
11046
- _chunkIHRXVIUUcjs.addNameSibling.call(void 0, row, "contractID", (v) => names.recordName("contract", v));
11053
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, row, "resourceID", (v) => names.resourceName(v));
11054
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, row, "roleID", (v) => names.recordName("role", v));
11055
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, row, "billingCodeID", (v) => names.recordName("billingCode", v));
11056
+ _chunkKB2ANVVRcjs.addNameSibling.call(void 0, row, "contractID", (v) => names.recordName("contract", v));
11047
11057
  return row;
11048
11058
  });
11049
11059
  result.names = names.section;
@@ -11053,7 +11063,7 @@ async function fullContext(resource, id, opts = {}, http) {
11053
11063
  }
11054
11064
 
11055
11065
  // src/resources/tickets.ts
11056
- var TicketsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11066
+ var TicketsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
11057
11067
  constructor(http, pageSize) {
11058
11068
  super(http, {
11059
11069
  key: "tickets",
@@ -11159,7 +11169,7 @@ var TicketsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11159
11169
  };
11160
11170
 
11161
11171
  // src/resources/ticket_webhooks.ts
11162
- var TicketWebhooksResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11172
+ var TicketWebhooksResource = class extends _chunkKB2ANVVRcjs.BaseResource {
11163
11173
  constructor(http, pageSize) {
11164
11174
  super(http, {
11165
11175
  key: "ticket_webhooks",
@@ -11245,7 +11255,7 @@ async function queryTimeEntries(_resource, filter, limit, operation, http) {
11245
11255
  body: { MaxRecords: limit, filter },
11246
11256
  operation
11247
11257
  });
11248
- const { items, pageDetails } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res);
11258
+ const { items, pageDetails } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res);
11249
11259
  return { items, hasMore: pageDetails.nextPageUrl != null };
11250
11260
  }
11251
11261
  async function windowQuery3(_resource, kind, http, opts) {
@@ -11264,7 +11274,7 @@ async function customRange3(_resource, from, to, http, opts) {
11264
11274
  const fromB = customRangeDay(from, "from", zone, "customRange");
11265
11275
  const toB = customRangeDay(to, "to", zone, "customRange");
11266
11276
  if (fromB.ms > toB.ms) {
11267
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("customRange: from must not be after to");
11277
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("customRange: from must not be after to");
11268
11278
  }
11269
11279
  const toEndMs = zone === void 0 ? toB.ms + DAY_MS2 - 1 : localDayEndMs(toB.y, toB.mo, toB.d, zone);
11270
11280
  const filter = [
@@ -11289,7 +11299,7 @@ async function postedWithin(_resource, from, to, http, opts, opLabel = "time_ent
11289
11299
  const fromB = customRangeDay(from, "from", zone, OP2);
11290
11300
  const toB = customRangeDay(to, "to", zone, OP2);
11291
11301
  if (fromB.ms > toB.ms) {
11292
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(`${OP2}: from (${iso2(fromB.ms)}) must not be after to (${iso2(toB.ms)})`, { operation: OP2 });
11302
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(`${OP2}: from (${iso2(fromB.ms)}) must not be after to (${iso2(toB.ms)})`, { operation: OP2 });
11293
11303
  }
11294
11304
  const windowToMs = zone === void 0 ? toB.ms + DAY_MS2 - 1 : localDayEndMs(toB.y, toB.mo, toB.d, zone);
11295
11305
  const filter = [
@@ -11356,13 +11366,13 @@ var LINKAGE_OWNED_FIELDS = /* @__PURE__ */ new Set([
11356
11366
  "roleID"
11357
11367
  ]);
11358
11368
  var TIME_WINDOW_FIELDS = /* @__PURE__ */ new Set(["dateWorked", "startDateTime", "endDateTime", "hoursWorked"]);
11359
- var ResourceInvalidError = class extends _chunkIHRXVIUUcjs.AutotaskError {
11369
+ var ResourceInvalidError = class extends _chunkKB2ANVVRcjs.AutotaskError {
11360
11370
  constructor(message, options = {}) {
11361
11371
  super(message, { code: "RESOURCE_INVALID", category: "validation", ...options });
11362
11372
  this.name = "ResourceInvalidError";
11363
11373
  }
11364
11374
  };
11365
- var AllocationCodeError = class extends _chunkIHRXVIUUcjs.AutotaskError {
11375
+ var AllocationCodeError = class extends _chunkKB2ANVVRcjs.AutotaskError {
11366
11376
  /** The failure kind (the machine code is `ALLOCATION_CODE_<KIND>`). */
11367
11377
 
11368
11378
  constructor(kind, message, options = {}) {
@@ -11371,7 +11381,7 @@ var AllocationCodeError = class extends _chunkIHRXVIUUcjs.AutotaskError {
11371
11381
  this.kind = kind;
11372
11382
  }
11373
11383
  };
11374
- var NoApplicableAllocationCodeError = class extends _chunkIHRXVIUUcjs.AutotaskError {
11384
+ var NoApplicableAllocationCodeError = class extends _chunkKB2ANVVRcjs.AutotaskError {
11375
11385
  /** The structured blocker details (filters tried + department sets). */
11376
11386
 
11377
11387
  constructor(details, options = {}) {
@@ -11397,7 +11407,7 @@ async function boundedQuery(http, path, filter, totalCap, operation) {
11397
11407
  let pages = 0;
11398
11408
  for (; ; ) {
11399
11409
  if (pages >= PAGE_GUARD) {
11400
- throw new (0, _chunkIHRXVIUUcjs.AutotaskError)(`createForResource: the ${path} walk hit the ${PAGE_GUARD}-page guard`, {
11410
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskError)(`createForResource: the ${path} walk hit the ${PAGE_GUARD}-page guard`, {
11401
11411
  code: "RESOLUTION_TRUNCATED",
11402
11412
  category: "resolution",
11403
11413
  operation,
@@ -11408,11 +11418,11 @@ async function boundedQuery(http, path, filter, totalCap, operation) {
11408
11418
  const res = await http.request({
11409
11419
  method: "POST",
11410
11420
  idempotent: true,
11411
- path: isFirst ? path : _chunkIHRXVIUUcjs.cursorToPath.call(void 0, http.baseUrl, cursor),
11421
+ path: isFirst ? path : _chunkKB2ANVVRcjs.cursorToPath.call(void 0, http.baseUrl, cursor),
11412
11422
  body: { MaxRecords: pageSize, filter },
11413
11423
  operation
11414
11424
  });
11415
- const { items: pageItems, pageDetails } = _chunkIHRXVIUUcjs.unwrapItems.call(void 0, res, operation);
11425
+ const { items: pageItems, pageDetails } = _chunkKB2ANVVRcjs.unwrapItems.call(void 0, res, operation);
11416
11426
  items.push(...pageItems);
11417
11427
  pages += 1;
11418
11428
  if (items.length >= totalCap) break;
@@ -11525,8 +11535,8 @@ function windowDefaults(params) {
11525
11535
  };
11526
11536
  }
11527
11537
  async function createForResource(resource, resourceID, params, opts = {}, http) {
11528
- const rid = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, resourceID, "resourceID");
11529
- const pin = (value, label) => typeof value === "number" ? _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, value, label) : void 0;
11538
+ const rid = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, resourceID, "resourceID");
11539
+ const pin = (value, label) => typeof value === "number" ? _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, value, label) : void 0;
11530
11540
  const pins = {
11531
11541
  code: pin(params.internallAllocationCodeID, "internallAllocationCodeID"),
11532
11542
  ticket: pin(params.ticketID, "ticketID"),
@@ -11535,19 +11545,19 @@ async function createForResource(resource, resourceID, params, opts = {}, http)
11535
11545
  };
11536
11546
  const pinCount = [pins.code, pins.ticket, pins.task].filter((v) => v !== void 0).length;
11537
11547
  if (pinCount > 1) {
11538
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
11548
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
11539
11549
  "createForResource: exactly one linkage pin is honoured (internallAllocationCodeID | ticketID | taskID) \u2014 the vendor gate requires exactly one; pass one pin (or none for the default internal linkage)",
11540
11550
  { operation: OP }
11541
11551
  );
11542
11552
  }
11543
11553
  if (pins.role !== void 0 && pins.code !== void 0) {
11544
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
11554
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
11545
11555
  "createForResource: a pinned roleID is only meaningful with the task/ticket linkage (internallAllocationCodeID pins the internal linkage and owns the code) \u2014 drop one",
11546
11556
  { operation: OP }
11547
11557
  );
11548
11558
  }
11549
11559
  if (params.hoursWorked !== void 0 && (typeof params.hoursWorked !== "number" || !Number.isFinite(params.hoursWorked) || params.hoursWorked <= 0)) {
11550
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)(
11560
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)(
11551
11561
  `createForResource: hoursWorked must be a positive finite number (got ${String(params.hoursWorked)})`,
11552
11562
  { operation: OP }
11553
11563
  );
@@ -11624,7 +11634,7 @@ async function createForResource(resource, resourceID, params, opts = {}, http)
11624
11634
  if (usedLinkage === "internal" && linkage === "task") {
11625
11635
  warnings.push("the task had zero applicable general allocation codes \u2014 the linkage fell back to internal (the sanctioned fallback; no taskID/roleID in the body).");
11626
11636
  }
11627
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0,
11637
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0,
11628
11638
  {
11629
11639
  operation: OP,
11630
11640
  method: "POST",
@@ -11663,7 +11673,7 @@ async function createForResource(resource, resourceID, params, opts = {}, http)
11663
11673
  };
11664
11674
  } catch (err) {
11665
11675
  lastError = err;
11666
- const text = _chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) ? `${_nullishCoalesce(_chunkIHRXVIUUcjs.formatVendorDetail.call(void 0, err.vendorError), () => ( ""))} ${err.message}` : "";
11676
+ const text = _chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) ? `${_nullishCoalesce(_chunkKB2ANVVRcjs.formatVendorDetail.call(void 0, err.vendorError), () => ( ""))} ${err.message}` : "";
11667
11677
  const gate3 = ROLE_REJECTION_PATTERN.test(text);
11668
11678
  if (usedLinkage !== "internal" && gate3) {
11669
11679
  if (!taskRoleFetched && usedLinkage === "task" && pins.task !== void 0) {
@@ -11683,14 +11693,14 @@ async function createForResource(resource, resourceID, params, opts = {}, http)
11683
11693
  throw err;
11684
11694
  }
11685
11695
  }
11686
- if (_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, lastError)) {
11696
+ if (_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, lastError)) {
11687
11697
  lastError.suggestedAction = (lastError.suggestedAction ? `${lastError.suggestedAction} ` : "") + `The createForResource attempt budget (${MAX_CREATE_ATTEMPTS} attempts: the role ladder + ${MAX_DISCOVERY_MERGES2} discovery merges) was exhausted \u2014 the vendor oracle rejected every candidate. Re-read the record/fields (operations.fieldCatalog, billing_codes.query with a filter) and retry with an explicit pin.`;
11688
11698
  }
11689
11699
  throw lastError;
11690
11700
  }
11691
11701
  function discoveryField(err, body, defaults) {
11692
- if (!_chunkIHRXVIUUcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) return null;
11693
- const entries = _chunkIHRXVIUUcjs.parseVendorErrors.call(void 0, err.vendorError);
11702
+ if (!_chunkKB2ANVVRcjs.isAutotaskError.call(void 0, err) || err.vendorError === void 0) return null;
11703
+ const entries = _chunkKB2ANVVRcjs.parseVendorErrors.call(void 0, err.vendorError);
11694
11704
  if (entries === void 0) return null;
11695
11705
  for (const entry of entries) {
11696
11706
  const field = entry.field;
@@ -11703,7 +11713,7 @@ function discoveryField(err, body, defaults) {
11703
11713
  }
11704
11714
 
11705
11715
  // src/resources/time_entries.ts
11706
- var TimeEntriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11716
+ var TimeEntriesResource = class extends _chunkKB2ANVVRcjs.BaseResource {
11707
11717
  constructor(http, pageSize) {
11708
11718
  super(http, {
11709
11719
  key: "time_entries",
@@ -11840,7 +11850,7 @@ var TimeEntriesResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11840
11850
  };
11841
11851
 
11842
11852
  // src/resources/time_entry_attachments.ts
11843
- var TimeEntryAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11853
+ var TimeEntryAttachmentsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
11844
11854
  constructor(http, pageSize) {
11845
11855
  super(http, {
11846
11856
  key: "time_entry_attachments",
@@ -11903,9 +11913,9 @@ var TimeEntryAttachmentsResource = class extends _chunkIHRXVIUUcjs.BaseResource
11903
11913
 
11904
11914
  // src/resources/special/time_off_requests.ts
11905
11915
  async function approve(_resource, id, opts = {}, http) {
11906
- const numericId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
11916
+ const numericId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
11907
11917
  if (opts.dryRun === true) {
11908
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
11918
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
11909
11919
  operation: "time_off_requests.approve",
11910
11920
  method: "GET",
11911
11921
  path: `/V1.0/TimeOffRequests/${numericId}/Approve`,
@@ -11920,16 +11930,16 @@ async function approve(_resource, id, opts = {}, http) {
11920
11930
  path: `/V1.0/TimeOffRequests/${numericId}/Approve`,
11921
11931
  operation: "time_off_requests.approve"
11922
11932
  });
11923
- return _chunkIHRXVIUUcjs.unwrapOperation.call(void 0, res);
11933
+ return _chunkKB2ANVVRcjs.unwrapOperation.call(void 0, res);
11924
11934
  }
11925
11935
  async function reject(_resource, id, reason, opts = {}, http) {
11926
- const numericId = _chunkIHRXVIUUcjs.parseIdentifier.call(void 0, id, "id");
11936
+ const numericId = _chunkKB2ANVVRcjs.parseIdentifier.call(void 0, id, "id");
11927
11937
  const text = reason.trim();
11928
11938
  if (text === "") {
11929
- throw new (0, _chunkIHRXVIUUcjs.AutotaskConfigError)("reject: a non-empty reason is required (vendor TimeOffRequestRejectModel)");
11939
+ throw new (0, _chunkKB2ANVVRcjs.AutotaskConfigError)("reject: a non-empty reason is required (vendor TimeOffRequestRejectModel)");
11930
11940
  }
11931
11941
  if (opts.dryRun === true) {
11932
- return _chunkIHRXVIUUcjs.buildDryRunResult.call(void 0, {
11942
+ return _chunkKB2ANVVRcjs.buildDryRunResult.call(void 0, {
11933
11943
  operation: "time_off_requests.reject",
11934
11944
  method: "POST",
11935
11945
  path: `/V1.0/TimeOffRequests/${numericId}/Reject`,
@@ -11946,11 +11956,11 @@ async function reject(_resource, id, reason, opts = {}, http) {
11946
11956
  body: { timeOffRequestID: numericId, reason: text },
11947
11957
  operation: "time_off_requests.reject"
11948
11958
  });
11949
- return _chunkIHRXVIUUcjs.unwrapOperation.call(void 0, res);
11959
+ return _chunkKB2ANVVRcjs.unwrapOperation.call(void 0, res);
11950
11960
  }
11951
11961
 
11952
11962
  // src/resources/time_off_requests.ts
11953
- var TimeOffRequestsResource = class extends _chunkIHRXVIUUcjs.BaseResource {
11963
+ var TimeOffRequestsResource = class extends _chunkKB2ANVVRcjs.BaseResource {
11954
11964
  constructor(http, pageSize) {
11955
11965
  super(http, {
11956
11966
  key: "time_off_requests",