node-autotask 0.39.0 → 0.39.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/MCP_TOOL_MANIFEST.md +4 -4
- package/N8N_MCP_MANIFEST.json +2 -2
- package/N8N_MCP_MANIFEST.md +3 -3
- package/capabilities.json +144 -144
- package/dist/capabilities.cjs +2 -2
- package/dist/capabilities.js +1 -1
- package/dist/{chunk-KSNK6UEW.cjs → chunk-73QNAEAF.cjs} +143 -143
- package/dist/{chunk-OKFTECIE.js → chunk-CQXB7KAO.js} +2 -2
- package/dist/{chunk-2KQS3RHQ.js → chunk-GDSCYY2G.js} +143 -143
- package/dist/{chunk-6ROB5KXB.cjs → chunk-GIVYTQ6R.cjs} +285 -285
- package/dist/{chunk-45PLS73K.cjs → chunk-LB34VFQY.cjs} +132 -99
- package/dist/{chunk-LD5UPSDB.js → chunk-LDTJNLX7.js} +2 -2
- package/dist/{chunk-FV5PJLIZ.js → chunk-LN3HQQBR.js} +48 -15
- package/dist/{chunk-RAZEXOLC.cjs → chunk-VR6RYXTD.cjs} +143 -143
- package/dist/{index-Bmoiwhx2.d.ts → index-C-Oqef4y.d.cts} +7169 -51
- package/dist/{index-BVOOHPvr.d.cts → index-C-Oqef4y.d.ts} +7169 -51
- package/dist/index.cjs +22 -22
- package/dist/index.d.cts +2 -4
- package/dist/index.d.ts +2 -4
- package/dist/index.js +4 -4
- package/dist/operations/index.cjs +179 -177
- package/dist/operations/index.d.cts +3 -221
- package/dist/operations/index.d.ts +3 -221
- package/dist/operations/index.js +4 -2
- package/dist/pool.cjs +9 -9
- package/dist/pool.d.cts +1 -2
- package/dist/pool.d.ts +1 -2
- package/dist/pool.js +4 -4
- package/dist/resources/index.cjs +4 -4
- package/dist/resources/index.d.cts +1 -2
- package/dist/resources/index.d.ts +1 -2
- package/dist/resources/index.js +3 -3
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/docs/API.md +37 -7
- package/package.json +1 -1
- package/dist/index-BQVStxwi.d.cts +0 -6893
- package/dist/index-BQVStxwi.d.ts +0 -6893
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8;
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkVR6RYXTDcjs = require('./chunk-VR6RYXTD.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkMJTKK3QGcjs = require('./chunk-MJTKK3QG.cjs');
|
|
@@ -17853,7 +17853,7 @@ function buildEntityTypeMap() {
|
|
|
17853
17853
|
}
|
|
17854
17854
|
var ENTITY_TYPE_TO_RESOURCE = buildEntityTypeMap();
|
|
17855
17855
|
var ENUMERABLE_RESOURCES = new Set(
|
|
17856
|
-
|
|
17856
|
+
_chunkVR6RYXTDcjs.CAPABILITIES.filter((rec) => rec.resource !== "operations" && (rec.operation === "query" || rec.operation === "get")).map(
|
|
17857
17857
|
(rec) => rec.resource
|
|
17858
17858
|
)
|
|
17859
17859
|
);
|
|
@@ -17941,7 +17941,7 @@ function capabilitySets() {
|
|
|
17941
17941
|
const fieldOps = /* @__PURE__ */ new Map();
|
|
17942
17942
|
const udfCapable = /* @__PURE__ */ new Set();
|
|
17943
17943
|
const resources = /* @__PURE__ */ new Set();
|
|
17944
|
-
for (const rec of
|
|
17944
|
+
for (const rec of _chunkVR6RYXTDcjs.CAPABILITIES) {
|
|
17945
17945
|
if (rec.resource === "operations") continue;
|
|
17946
17946
|
resources.add(rec.resource);
|
|
17947
17947
|
if (rec.operation === "getFieldInfo") fieldOps.set(rec.resource, rec);
|
|
@@ -17953,7 +17953,7 @@ var derivedIndex = null;
|
|
|
17953
17953
|
function derivedFieldsFor(resource) {
|
|
17954
17954
|
if (derivedIndex === null) {
|
|
17955
17955
|
derivedIndex = /* @__PURE__ */ new Map();
|
|
17956
|
-
for (const rec of
|
|
17956
|
+
for (const rec of _chunkVR6RYXTDcjs.CAPABILITIES) {
|
|
17957
17957
|
const declared = _optionalChain([rec, 'access', _136 => _136.metadata, 'optionalAccess', _137 => _137.derivedFields]);
|
|
17958
17958
|
if (!Array.isArray(declared) || derivedIndex.has(rec.resource)) continue;
|
|
17959
17959
|
const rows = [];
|
|
@@ -20530,6 +20530,7 @@ var BaseResource = class extends MutationBase {
|
|
|
20530
20530
|
|
|
20531
20531
|
// src/operations/compositeNames.ts
|
|
20532
20532
|
var PICKLIST_VALUE_NOT_SERVED_NOTE = "The picklist is served to this API user, but this record's value is not in it (an inactive or unexposed value) \u2014 the label cannot be resolved and is null; refreshing the field catalog will not surface it. (A picklist the vendor does not expose at all is reported with the field-catalog honesty note instead.)";
|
|
20533
|
+
var PICKLIST_CATALOG_UNAVAILABLE_NOTE = "The field-catalog read that serves picklist labels failed for this call, so this label is unavailable (null), not absent: the value may well have one. Retry the call once the catalog read succeeds (see names.catalogError).";
|
|
20533
20534
|
var DEFAULT_MAX_NAME_READS = 20;
|
|
20534
20535
|
var TICKET_LABEL_FIELDS = ["status", "priority", "ticketType", "issueType", "subIssueType", "source", "queueID"];
|
|
20535
20536
|
function isVendorId(value) {
|
|
@@ -20840,7 +20841,7 @@ async function resolveCompositeNames(http, plan, opts = {}) {
|
|
|
20840
20841
|
}
|
|
20841
20842
|
const hit = values.find((v) => String(v.value) === String(value));
|
|
20842
20843
|
if (hit === void 0) {
|
|
20843
|
-
section.reasons[field] = PICKLIST_VALUE_NOT_SERVED_NOTE;
|
|
20844
|
+
if (String(value) !== "0") section.reasons[field] = PICKLIST_VALUE_NOT_SERVED_NOTE;
|
|
20844
20845
|
return null;
|
|
20845
20846
|
}
|
|
20846
20847
|
return typeof hit.label === "string" ? hit.label : null;
|
|
@@ -20861,6 +20862,7 @@ function untrustedName(name) {
|
|
|
20861
20862
|
const [[capped]] = truncateNoteChars([{ v: name }], LABEL_NAME_MAX_CHARS, ["v"]);
|
|
20862
20863
|
return _nullishCoalesce(_chunkMJTKK3QGcjs.wrapUntrusted.call(void 0, capped.v), () => ( capped.v));
|
|
20863
20864
|
}
|
|
20865
|
+
var lastPicklists = /* @__PURE__ */ new WeakMap();
|
|
20864
20866
|
function readNamesOpt(value, where) {
|
|
20865
20867
|
if (value === void 0) return true;
|
|
20866
20868
|
if (typeof value !== "boolean") {
|
|
@@ -20873,17 +20875,31 @@ async function labelRows(client, resourceKey, rows) {
|
|
|
20873
20875
|
for (const row of rows) for (const k of Object.keys(row)) keys.add(k);
|
|
20874
20876
|
if (keys.size === 0) return { rows: [...rows] };
|
|
20875
20877
|
let picklistFields = [];
|
|
20878
|
+
let unavailable = [];
|
|
20879
|
+
let catalogError;
|
|
20876
20880
|
const modelFields = _nullishCoalesce(MODEL_FIELD_SETS[resourceKey], () => ( []));
|
|
20877
20881
|
const candidates = [...keys].filter((f) => f !== "id" && modelFields.includes(f) && ROW_FK_TABLES[f] === void 0 && !isResourceFkField(f));
|
|
20878
20882
|
if (candidates.length > 0) try {
|
|
20879
20883
|
const catalog = await fieldCatalog(client, { resources: [resourceKey], labels: true });
|
|
20880
|
-
const
|
|
20881
|
-
|
|
20884
|
+
const row = catalog.rows.find((r) => r.resource === resourceKey);
|
|
20885
|
+
const known = _nullishCoalesce(lastPicklists.get(client), () => ( /* @__PURE__ */ new Map()));
|
|
20886
|
+
lastPicklists.set(client, known);
|
|
20887
|
+
if (_optionalChain([row, 'optionalAccess', _204 => _204.fields]) === void 0) {
|
|
20888
|
+
const last = known.get(resourceKey);
|
|
20889
|
+
unavailable = (_nullishCoalesce(last, () => ( []))).filter((f) => candidates.includes(f));
|
|
20890
|
+
if (last === void 0 || unavailable.length > 0) {
|
|
20891
|
+
catalogError = _nullishCoalesce(_optionalChain([row, 'optionalAccess', _205 => _205.error]), () => ( { code: "INVALID_RESPONSE", message: `fieldCatalog: no ${resourceKey} row` }));
|
|
20892
|
+
}
|
|
20893
|
+
} else {
|
|
20894
|
+
const all = row.fields.filter((f) => f.isPickList).map((f) => f.name);
|
|
20895
|
+
known.set(resourceKey, all);
|
|
20896
|
+
picklistFields = all.filter((f) => candidates.includes(f));
|
|
20897
|
+
}
|
|
20882
20898
|
} catch (err) {
|
|
20883
20899
|
if (!isAutotaskError(err) || err.code === "ABORTED") throw err;
|
|
20884
20900
|
}
|
|
20885
|
-
const labelled = (field) => picklistFields.includes(field) || ROW_FK_TABLES[field] !== void 0 || isResourceFkField(field);
|
|
20886
|
-
if (![...keys].some(labelled)) return { rows: [...rows] };
|
|
20901
|
+
const labelled = (field) => picklistFields.includes(field) || unavailable.includes(field) || ROW_FK_TABLES[field] !== void 0 || isResourceFkField(field);
|
|
20902
|
+
if (catalogError === void 0 && ![...keys].some(labelled)) return { rows: [...rows] };
|
|
20887
20903
|
const builder = createNamePlan(picklistFields, resourceKey);
|
|
20888
20904
|
for (const row of rows) {
|
|
20889
20905
|
for (const [field, value] of Object.entries(row)) {
|
|
@@ -20898,8 +20914,10 @@ async function labelRows(client, resourceKey, rows) {
|
|
|
20898
20914
|
const out = rows.map((row) => {
|
|
20899
20915
|
const r = { ...row };
|
|
20900
20916
|
for (const [field, value] of Object.entries(row)) {
|
|
20901
|
-
const
|
|
20902
|
-
if (picklistFields.includes(field)) r[`${field}Label`] =
|
|
20917
|
+
const has2 = value !== null && value !== void 0 && names !== void 0;
|
|
20918
|
+
if (picklistFields.includes(field)) r[`${field}Label`] = has2 ? names.labelFor(field, value) : null;
|
|
20919
|
+
else if (unavailable.includes(field)) r[`${field}Label`] = null;
|
|
20920
|
+
const set = has2 && value !== 0 && value !== "0";
|
|
20903
20921
|
const table = ROW_FK_TABLES[field];
|
|
20904
20922
|
if (table !== void 0) r[`${field}Name`] = set && isVendorId(value) ? untrustedName(names.recordName(table, value)) : null;
|
|
20905
20923
|
else if (isResourceFkField(field)) r[`${field}Name`] = set && isVendorId(value) ? untrustedName(names.resourceName(value)) : null;
|
|
@@ -20907,16 +20925,28 @@ async function labelRows(client, resourceKey, rows) {
|
|
|
20907
20925
|
if (r["assignedResourceIDName"] !== void 0) r["assignedResourceName"] = r["assignedResourceIDName"];
|
|
20908
20926
|
return r;
|
|
20909
20927
|
});
|
|
20910
|
-
|
|
20911
|
-
const
|
|
20912
|
-
const reasons = names.section.reasons;
|
|
20913
|
-
|
|
20928
|
+
const capped = names === void 0 ? 0 : Object.values(names.section.rows).filter((row) => row.capped).length;
|
|
20929
|
+
const unresolved = Object.keys(_nullishCoalesce(_optionalChain([names, 'optionalAccess', _206 => _206.section, 'access', _207 => _207.reasons]), () => ( {})));
|
|
20930
|
+
const reasons = { ..._optionalChain([names, 'optionalAccess', _208 => _208.section, 'access', _209 => _209.reasons]) };
|
|
20931
|
+
for (const f of unavailable) reasons[f] = PICKLIST_CATALOG_UNAVAILABLE_NOTE;
|
|
20932
|
+
if (capped === 0 && unresolved.length === 0 && catalogError === void 0) return { rows: out };
|
|
20914
20933
|
const parts = [];
|
|
20915
20934
|
if (capped > 0) parts.push(`${capped} id(s) left unlabelled (their *Name is null): the per-call cap of ${DEFAULT_MAX_NAME_READS} uncached name reads was hit \u2014 names already read are cached, so repeating or narrowing the call labels more`);
|
|
20916
|
-
if (
|
|
20935
|
+
if (unresolved.length > 0) parts.push(`picklist label(s) unavailable for ${unresolved.join(", ")} (see reasons)`);
|
|
20936
|
+
if (catalogError !== void 0) {
|
|
20937
|
+
parts.push(
|
|
20938
|
+
`the ${resourceKey} field catalog read failed (${catalogError.code}), so picklist labels are unavailable for this call, not absent: ` + (unavailable.length > 0 ? `the *Label is null for ${unavailable.join(", ")}` : "no *Label sibling was added (the picklist fields are unknown until a catalog read succeeds)") + " \u2014 retry the call to label them"
|
|
20939
|
+
);
|
|
20940
|
+
}
|
|
20917
20941
|
return {
|
|
20918
20942
|
rows: out,
|
|
20919
|
-
names: {
|
|
20943
|
+
names: {
|
|
20944
|
+
truncated: capped > 0,
|
|
20945
|
+
capped,
|
|
20946
|
+
note: parts.join("; "),
|
|
20947
|
+
...Object.keys(reasons).length > 0 ? { reasons } : {},
|
|
20948
|
+
...catalogError !== void 0 ? { catalogError } : {}
|
|
20949
|
+
}
|
|
20920
20950
|
};
|
|
20921
20951
|
}
|
|
20922
20952
|
async function labelFetchResults(client, result) {
|
|
@@ -20935,11 +20965,13 @@ async function labelFetchResults(client, result) {
|
|
|
20935
20965
|
}
|
|
20936
20966
|
if (summaries.length === 0) return { ...result, results };
|
|
20937
20967
|
const reasons = Object.assign({}, ...summaries.map((s) => _nullishCoalesce(s.reasons, () => ( {}))));
|
|
20968
|
+
const catalogError = _optionalChain([summaries, 'access', _210 => _210.find, 'call', _211 => _211((s) => s.catalogError !== void 0), 'optionalAccess', _212 => _212.catalogError]);
|
|
20938
20969
|
const names = {
|
|
20939
20970
|
truncated: summaries.some((s) => s.truncated),
|
|
20940
20971
|
capped: summaries.reduce((n, s) => n + s.capped, 0),
|
|
20941
20972
|
note: summaries.map((s) => s.note).join("; "),
|
|
20942
|
-
...Object.keys(reasons).length > 0 ? { reasons } : {}
|
|
20973
|
+
...Object.keys(reasons).length > 0 ? { reasons } : {},
|
|
20974
|
+
...catalogError !== void 0 ? { catalogError } : {}
|
|
20943
20975
|
};
|
|
20944
20976
|
return { ...result, results, names };
|
|
20945
20977
|
}
|
|
@@ -20969,7 +21001,7 @@ var BillingCodesResource = class extends BaseResource {
|
|
|
20969
21001
|
}
|
|
20970
21002
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
20971
21003
|
async get(id, opts = {}) {
|
|
20972
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
21004
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _213 => _213.fresh]) === true);
|
|
20973
21005
|
}
|
|
20974
21006
|
/** Resolve a BillingCode from a numeric id (or, where the vendor indexes a primary text field,
|
|
20975
21007
|
* from an exact match on name). A numeric id miss throws NOT_FOUND; a complete
|
|
@@ -20984,7 +21016,7 @@ var BillingCodesResource = class extends BaseResource {
|
|
|
20984
21016
|
/** Search BillingCode records: bounded contains on name (no vendor free-text search exists);
|
|
20985
21017
|
* limit defaults to 25, max 500. */
|
|
20986
21018
|
async search(query, opts) {
|
|
20987
|
-
return this.searchBase(query, { limit: _optionalChain([opts, 'optionalAccess',
|
|
21019
|
+
return this.searchBase(query, { limit: _optionalChain([opts, 'optionalAccess', _214 => _214.limit]) });
|
|
20988
21020
|
}
|
|
20989
21021
|
};
|
|
20990
21022
|
|
|
@@ -21288,28 +21320,28 @@ async function customRangeQuery(http, path, field, from, to, limit, operation, z
|
|
|
21288
21320
|
|
|
21289
21321
|
// src/resources/special/billing_items.ts
|
|
21290
21322
|
async function windowQuery(_resource, kind, http, opts) {
|
|
21291
|
-
const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
21292
|
-
const tz = _optionalChain([opts, 'optionalAccess',
|
|
21323
|
+
const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _215 => _215.now]), () => ( /* @__PURE__ */ new Date()));
|
|
21324
|
+
const tz = _optionalChain([opts, 'optionalAccess', _216 => _216.tz]) === void 0 ? void 0 : validateZone(opts.tz, `billing_items.${kind}`);
|
|
21293
21325
|
return dateWindowQuery(
|
|
21294
21326
|
http,
|
|
21295
21327
|
"/V1.0/BillingItems/query",
|
|
21296
21328
|
"itemDate",
|
|
21297
21329
|
kind,
|
|
21298
|
-
clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
21330
|
+
clampWindowLimit(_optionalChain([opts, 'optionalAccess', _217 => _217.limit])),
|
|
21299
21331
|
`billing_items.${kind}`,
|
|
21300
21332
|
now,
|
|
21301
21333
|
tz
|
|
21302
21334
|
);
|
|
21303
21335
|
}
|
|
21304
21336
|
async function customRange(_resource, from, to, http, opts) {
|
|
21305
|
-
const zone = _optionalChain([opts, 'optionalAccess',
|
|
21337
|
+
const zone = _optionalChain([opts, 'optionalAccess', _218 => _218.tz]) === void 0 ? void 0 : validateZone(opts.tz, "billing_items.customRange");
|
|
21306
21338
|
return customRangeQuery(
|
|
21307
21339
|
http,
|
|
21308
21340
|
"/V1.0/BillingItems/query",
|
|
21309
21341
|
"itemDate",
|
|
21310
21342
|
from,
|
|
21311
21343
|
to,
|
|
21312
|
-
clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
21344
|
+
clampWindowLimit(_optionalChain([opts, 'optionalAccess', _219 => _219.limit])),
|
|
21313
21345
|
"billing_items.customRange",
|
|
21314
21346
|
zone
|
|
21315
21347
|
);
|
|
@@ -21341,7 +21373,7 @@ var BillingItemsResource = class extends BaseResource {
|
|
|
21341
21373
|
}
|
|
21342
21374
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
21343
21375
|
async get(id, opts = {}) {
|
|
21344
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
21376
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _220 => _220.fresh]) === true);
|
|
21345
21377
|
}
|
|
21346
21378
|
/** Update a record (PUT on the COLLECTION — the vendored spec's item path is GET-only; the vendor
|
|
21347
21379
|
* keys the record by the id in the body). The vendor validates the FULL model on this route (V2), so a
|
|
@@ -21533,9 +21565,9 @@ async function searchByDomain(_resource, domain, opts = {}, http) {
|
|
|
21533
21565
|
return fetchCompanies(http, ids2, limit);
|
|
21534
21566
|
}
|
|
21535
21567
|
async function searchByIdentity(_resource, identity, opts = {}, http) {
|
|
21536
|
-
const name = _nullishCoalesce(_optionalChain([identity, 'access',
|
|
21537
|
-
const email = _nullishCoalesce(_optionalChain([identity, 'access',
|
|
21538
|
-
const website = _nullishCoalesce(_optionalChain([identity, 'access',
|
|
21568
|
+
const name = _nullishCoalesce(_optionalChain([identity, 'access', _221 => _221.companyName, 'optionalAccess', _222 => _222.trim, 'call', _223 => _223()]), () => ( ""));
|
|
21569
|
+
const email = _nullishCoalesce(_optionalChain([identity, 'access', _224 => _224.email, 'optionalAccess', _225 => _225.trim, 'call', _226 => _226()]), () => ( ""));
|
|
21570
|
+
const website = _nullishCoalesce(_optionalChain([identity, 'access', _227 => _227.website, 'optionalAccess', _228 => _228.trim, 'call', _229 => _229()]), () => ( ""));
|
|
21539
21571
|
if (name === "" && email === "" && website === "") {
|
|
21540
21572
|
throw new AutotaskConfigError("searchByIdentity: at least one of companyName / email / website is required");
|
|
21541
21573
|
}
|
|
@@ -21674,7 +21706,7 @@ function validateUpsertInput(companyName, params) {
|
|
|
21674
21706
|
if (typeof companyName !== "string" || companyName.trim() === "") {
|
|
21675
21707
|
throw new AutotaskConfigError("upsertByName: companyName is required (a non-empty string)", { operation: OP_UPSERT_NAME });
|
|
21676
21708
|
}
|
|
21677
|
-
if (typeof _optionalChain([params, 'optionalAccess',
|
|
21709
|
+
if (typeof _optionalChain([params, 'optionalAccess', _230 => _230.phone]) !== "string" || params.phone.trim() === "") {
|
|
21678
21710
|
throw new 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 });
|
|
21679
21711
|
}
|
|
21680
21712
|
const companyType = _nullishCoalesce(params.companyType, () => ( DEFAULT_COMPANY_TYPE));
|
|
@@ -21899,7 +21931,7 @@ function readIncludeNames(record, includeFields) {
|
|
|
21899
21931
|
function resolveAuthority(record, live) {
|
|
21900
21932
|
if (live !== null) return { known: live, authority: "the tenant's live entity field metadata" };
|
|
21901
21933
|
const vendored = MODEL_FIELD_SETS[record.resource];
|
|
21902
|
-
const liveOnlyExempt = Array.isArray(_optionalChain([record, 'access',
|
|
21934
|
+
const liveOnlyExempt = Array.isArray(_optionalChain([record, 'access', _231 => _231.metadata, 'optionalAccess', _232 => _232.liveOnlyFields])) ? record.metadata.liveOnlyFields : [];
|
|
21903
21935
|
if (vendored === void 0) return void 0;
|
|
21904
21936
|
return {
|
|
21905
21937
|
known: [...vendored, ...liveOnlyExempt],
|
|
@@ -21955,11 +21987,11 @@ var CLOSED_STATUS_LABELS = ["complete", "completed", "closed", "cancelled", "can
|
|
|
21955
21987
|
var OP = "tickets.statusSemantics";
|
|
21956
21988
|
function picklistOf(fields) {
|
|
21957
21989
|
if (!Array.isArray(fields)) return [];
|
|
21958
|
-
const status = fields.find((f) => typeof _optionalChain([f, 'optionalAccess',
|
|
21990
|
+
const status = fields.find((f) => typeof _optionalChain([f, 'optionalAccess', _233 => _233.name]) === "string" && f.name.toLowerCase() === "status");
|
|
21959
21991
|
if (status === void 0 || status.isPickList !== true || !Array.isArray(status.picklistValues)) return [];
|
|
21960
21992
|
const out = [];
|
|
21961
21993
|
for (const v of status.picklistValues) {
|
|
21962
|
-
const id = Number(_optionalChain([v, 'optionalAccess',
|
|
21994
|
+
const id = Number(_optionalChain([v, 'optionalAccess', _234 => _234.value]));
|
|
21963
21995
|
if (!Number.isSafeInteger(id)) continue;
|
|
21964
21996
|
out.push({ id, label: typeof v.label === "string" ? v.label : "" });
|
|
21965
21997
|
}
|
|
@@ -21975,11 +22007,11 @@ async function readFields(http, fresh) {
|
|
|
21975
22007
|
if (hit !== void 0) return hit;
|
|
21976
22008
|
}
|
|
21977
22009
|
const res = await http.request({ method: "GET", path: "/V1.0/Tickets/entityInformation/fields", operation: OP, maxRetries: 0 });
|
|
21978
|
-
const fields = _optionalChain([res, 'optionalAccess',
|
|
22010
|
+
const fields = _optionalChain([res, 'optionalAccess', _235 => _235.fields]);
|
|
21979
22011
|
if (!Array.isArray(fields)) {
|
|
21980
22012
|
throw new AutotaskError("Expected the FieldInformationResultModel envelope { fields: [] }; got a different shape", { code: "INVALID_RESPONSE", category: "server" });
|
|
21981
22013
|
}
|
|
21982
|
-
_optionalChain([cache, 'optionalAccess',
|
|
22014
|
+
_optionalChain([cache, 'optionalAccess', _236 => _236.set, 'call', _237 => _237(key, "fields", fields)]);
|
|
21983
22015
|
return fields;
|
|
21984
22016
|
}
|
|
21985
22017
|
function assumed(allowAssumed, operation) {
|
|
@@ -22131,7 +22163,7 @@ async function readOpenTickets(http, companyID, ticketLimit, includeFields, stat
|
|
|
22131
22163
|
closedStatus
|
|
22132
22164
|
};
|
|
22133
22165
|
if (openRows.length === 0) {
|
|
22134
|
-
const stamp = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access',
|
|
22166
|
+
const stamp = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access', _238 => _238["tickets"], 'optionalAccess', _239 => _239.query]), [{ field: "companyID", op: "eq", value: companyID }, openLeaf]);
|
|
22135
22167
|
if (stamp !== void 0) {
|
|
22136
22168
|
openTickets = {
|
|
22137
22169
|
items: openRows,
|
|
@@ -22301,7 +22333,7 @@ async function prepareCrmWrite(resource, input, http) {
|
|
|
22301
22333
|
const rows = await readRows(http, "/V1.0/CompanyLocations/query", [{ field: "companyID", op: "eq", value: companyID }]);
|
|
22302
22334
|
const items = rows.map((r) => ({ id: r.id, name: str(r.name), isPrimary: bool(r.isPrimary), isActive: bool(r.isActive), city: str(r.city), state: str(r.state), postalCode: str(r.postalCode) }));
|
|
22303
22335
|
const active = items.filter((l) => l.isActive !== false);
|
|
22304
|
-
const m = active.filter((l) => has(ct.city) && _optionalChain([l, 'access',
|
|
22336
|
+
const m = active.filter((l) => has(ct.city) && _optionalChain([l, 'access', _240 => _240.city, 'optionalAccess', _241 => _241.toLowerCase, 'call', _242 => _242()]) === String(ct.city).toLowerCase() || has(ct.postalCode) && l.postalCode === String(ct.postalCode));
|
|
22305
22337
|
const pick = has(ct.companyLocationID) ? { rule: "matched", locationID: ct.companyLocationID } : active.length === 1 ? { rule: "single", locationID: active[0].id } : active.length > 1 && m.length === 1 ? { rule: "matched", locationID: m[0].id } : active.length > 1 ? { rule: "ask", locationID: null } : { rule: "none", locationID: null };
|
|
22306
22338
|
locations = { items, pick };
|
|
22307
22339
|
if (input.intent === "add_contact" && pick.locationID === null) {
|
|
@@ -22336,7 +22368,7 @@ async function prepareCrmWrite(resource, input, http) {
|
|
|
22336
22368
|
}
|
|
22337
22369
|
}
|
|
22338
22370
|
if (input.intent === "create_company" && status !== "matched") {
|
|
22339
|
-
const eff = effectiveRequiredFields(null, _optionalChain([RELATIONSHIP_MAP, 'access',
|
|
22371
|
+
const eff = effectiveRequiredFields(null, _optionalChain([RELATIONSHIP_MAP, 'access', _243 => _243.companies, 'optionalAccess', _244 => _244.zoneFacts]));
|
|
22340
22372
|
const research = (f) => ["companyType", "ownerResourceID", "countryID"].includes(f) ? "lookup" : "web_if_available_else_ask";
|
|
22341
22373
|
const lookups = {
|
|
22342
22374
|
companyType: { via: "operations.fieldCatalog", resource: "companies", field: "companyType", labels: true, note: "map the user wording to one returned label; never hardcode ids" },
|
|
@@ -22358,16 +22390,16 @@ async function prepareCrmWrite(resource, input, http) {
|
|
|
22358
22390
|
}
|
|
22359
22391
|
let next = null;
|
|
22360
22392
|
const isInactive = (d) => d.isActive === false || d.isActive === 0;
|
|
22361
|
-
const dups = _nullishCoalesce(_optionalChain([contacts, 'optionalAccess',
|
|
22393
|
+
const dups = _nullishCoalesce(_optionalChain([contacts, 'optionalAccess', _245 => _245.duplicates]), () => ( []));
|
|
22362
22394
|
const sameCompany = companyID === null ? dups : dups.filter((d) => d.companyID === companyID);
|
|
22363
22395
|
const elsewhere = companyID === null ? [] : dups.filter((d) => d.companyID !== companyID && !isInactive(d));
|
|
22364
22396
|
if (input.intent === "add_contact" && sameCompany.length === 0 && elsewhere.length > 0) {
|
|
22365
|
-
needsInput.push({ field: "contact", why: `a contact with this ${_nullishCoalesce(_optionalChain([contacts, 'optionalAccess',
|
|
22397
|
+
needsInput.push({ field: "contact", why: `a contact with this ${_nullishCoalesce(_optionalChain([contacts, 'optionalAccess', _246 => _246.matchedBy]), () => ( "identity"))} is active at another company: update it, move it with contacts.moveToCompany, or confirm a second record`, source: "policy", lookup: { duplicates: elsewhere }, research: "ask" });
|
|
22366
22398
|
}
|
|
22367
22399
|
if (needsInput.length === 0) {
|
|
22368
22400
|
const dup = sameCompany[0];
|
|
22369
22401
|
if (input.intent === "create_company") next = status === "matched" ? { operation: "companies.update", note: "the company already exists: update it instead of creating" } : { operation: "companies.create", note: 'then re-run with intent add_contact: the vendor auto-creates a "Primary Address" location (rename it with company_locations.update; locations cannot be deleted via the API)' };
|
|
22370
|
-
else if (input.intent === "add_contact") next = dup ? { operation: "contacts.update", note: `a contact already matches by ${_nullishCoalesce(_optionalChain([contacts, 'optionalAccess',
|
|
22402
|
+
else if (input.intent === "add_contact") next = dup ? { operation: "contacts.update", note: `a contact already matches by ${_nullishCoalesce(_optionalChain([contacts, 'optionalAccess', _247 => _247.matchedBy]), () => ( "id"))} (id ${String(dup.id)}): update it, or move it with contacts.moveToCompany if it belongs to another company` } : { operation: "contacts.create", note: `set companyID ${String(companyID)} and companyLocationID ${String(_optionalChain([locations, 'optionalAccess', _248 => _248.pick, 'access', _249 => _249.locationID]))}` };
|
|
22371
22403
|
else if (input.intent === "update_contact") next = { operation: "contacts.update", note: "send only the changed fields" };
|
|
22372
22404
|
else next = { operation: "companies.update", note: "send only the changed fields" };
|
|
22373
22405
|
}
|
|
@@ -22487,7 +22519,7 @@ function validateUnbilledWorkOptions(companyId, opts) {
|
|
|
22487
22519
|
var OP3 = "companies.unbilledWork";
|
|
22488
22520
|
function unbilledWorkPartStatus(key, conditions, items) {
|
|
22489
22521
|
if (items.length !== 0) return { status: "ok" };
|
|
22490
|
-
const stamp = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access',
|
|
22522
|
+
const stamp = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access', _250 => _250[key], 'optionalAccess', _251 => _251.query]), conditions);
|
|
22491
22523
|
if (stamp !== void 0) return { status: "blind", blindSurface: stamp, note: stamp.note };
|
|
22492
22524
|
return {
|
|
22493
22525
|
status: "ok",
|
|
@@ -22737,7 +22769,7 @@ var CompaniesResource = class extends BaseResource {
|
|
|
22737
22769
|
}
|
|
22738
22770
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
22739
22771
|
async get(id, opts = {}) {
|
|
22740
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
22772
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _252 => _252.fresh]) === true);
|
|
22741
22773
|
}
|
|
22742
22774
|
/** Create a record (OperationResultModel → { id}). `dryRun: true` returns the
|
|
22743
22775
|
* pinned envelope (section 19.3) and never issues the create. A 2xx that is not the
|
|
@@ -22894,8 +22926,8 @@ function validateFetchManyItems(items, cap, opName = "fetchMany", capRef = `FETC
|
|
|
22894
22926
|
problems.push(`${at}.fields: must be an array of exact vendor field names (discover them via operations.fieldCatalog)`);
|
|
22895
22927
|
continue;
|
|
22896
22928
|
}
|
|
22897
|
-
if (_optionalChain([validation, 'optionalAccess',
|
|
22898
|
-
const authoritative = _nullishCoalesce(_optionalChain([validation, 'optionalAccess',
|
|
22929
|
+
if (_optionalChain([validation, 'optionalAccess', _253 => _253.fieldCheck]) !== false) {
|
|
22930
|
+
const authoritative = _nullishCoalesce(_optionalChain([validation, 'optionalAccess', _254 => _254.fieldSetsByResource, 'optionalAccess', _255 => _255.get, 'call', _256 => _256(resourceKey)]), () => ( fields));
|
|
22899
22931
|
for (const f of item.fields) {
|
|
22900
22932
|
if (!authoritative.includes(f)) {
|
|
22901
22933
|
problems.push(
|
|
@@ -23001,7 +23033,7 @@ function project3(value, fields) {
|
|
|
23001
23033
|
return out;
|
|
23002
23034
|
}
|
|
23003
23035
|
function resourcePathOf(key, holder) {
|
|
23004
|
-
const path = _optionalChain([holder, 'optionalAccess',
|
|
23036
|
+
const path = _optionalChain([holder, 'optionalAccess', _257 => _257.resourcePath]);
|
|
23005
23037
|
if (typeof path !== "string" || path === "") {
|
|
23006
23038
|
throw new AutotaskConfigError(`fetchByIds: the client exposes no ${key} resource path (registry drift)`, {
|
|
23007
23039
|
suggestedAction: "Rebuild the client from the SDK build that ships this registry (the resource set is pinned by the plan)."
|
|
@@ -23614,7 +23646,7 @@ var stampPart = (key, raw, conditions, extraNotes) => {
|
|
|
23614
23646
|
status: st.status,
|
|
23615
23647
|
blindSurface: st.blindSurface,
|
|
23616
23648
|
note: [st.note, ..._nullishCoalesce(extraNotes, () => ( []))].filter(Boolean).join(" | ") || void 0,
|
|
23617
|
-
emptyReason: raw.items.length === 0 && st.status === "ok" ? _optionalChain([EMPTY_REASON_STAMPS, 'access',
|
|
23649
|
+
emptyReason: raw.items.length === 0 && st.status === "ok" ? _optionalChain([EMPTY_REASON_STAMPS, 'access', _258 => _258[key], 'optionalAccess', _259 => _259.query]) : void 0
|
|
23618
23650
|
};
|
|
23619
23651
|
};
|
|
23620
23652
|
function appendWiresNote(wires, note) {
|
|
@@ -23679,7 +23711,7 @@ async function resolveContractType(ctx, contractType) {
|
|
|
23679
23711
|
if (contractType > 0) {
|
|
23680
23712
|
ctx.wires.issued += 1;
|
|
23681
23713
|
try {
|
|
23682
|
-
contractTypeLabel = await _asyncNullishCoalesce(await _asyncOptionalChain([(await readPicklists(ctx.http, "/V1.0/Contracts", ctx.OP)), 'access', async
|
|
23714
|
+
contractTypeLabel = await _asyncNullishCoalesce(await _asyncOptionalChain([(await readPicklists(ctx.http, "/V1.0/Contracts", ctx.OP)), 'access', async _260 => _260.get, 'call', async _261 => _261("contractType"), 'optionalAccess', async _262 => _262.get, 'call', async _263 => _263(contractType)]), async () => ( null));
|
|
23683
23715
|
} catch (err) {
|
|
23684
23716
|
if (!(err instanceof AutotaskError)) throw err;
|
|
23685
23717
|
}
|
|
@@ -23690,7 +23722,7 @@ async function resolveContractType(ctx, contractType) {
|
|
|
23690
23722
|
return { contractTypeLabel, contractTypeKnown, isBlockHours, isTimeAndMaterials };
|
|
23691
23723
|
}
|
|
23692
23724
|
async function fetchRoot(ctx, resource) {
|
|
23693
|
-
const contractCached = _optionalChain([ctx, 'access',
|
|
23725
|
+
const contractCached = _optionalChain([ctx, 'access', _264 => _264.rawHttp, 'access', _265 => _265.readCache, 'optionalAccess', _266 => _266.get, 'call', _267 => _267(`/V1.0/Contracts/${ctx.id}`)]) !== void 0;
|
|
23694
23726
|
const contract = await resource.get(ctx.id);
|
|
23695
23727
|
ctx.wires.issued += 1;
|
|
23696
23728
|
if (!contractCached) ctx.wires.requests += 1;
|
|
@@ -23905,10 +23937,10 @@ async function fetchSubscriptions(ctx, cis) {
|
|
|
23905
23937
|
const labels = await readSubscriptionLabels(ctx, subscriptions);
|
|
23906
23938
|
for (const x of subscriptions) {
|
|
23907
23939
|
const sid = num(x["id"]);
|
|
23908
|
-
const periodLabel = _optionalChain([labels, 'optionalAccess',
|
|
23940
|
+
const periodLabel = _optionalChain([labels, 'optionalAccess', _268 => _268.get, 'call', _269 => _269("periodType"), 'optionalAccess', _270 => _270.get, 'call', _271 => _271(num(x["periodType"]))]);
|
|
23909
23941
|
subFactor.set(sid, periodMonthlyFactor(x["periodType"], periodLabel));
|
|
23910
23942
|
if (isOneTimePeriod(x["periodType"], periodLabel)) oneTimeSubs.add(sid);
|
|
23911
|
-
const statusLabel = _optionalChain([labels, 'optionalAccess',
|
|
23943
|
+
const statusLabel = _optionalChain([labels, 'optionalAccess', _272 => _272.get, 'call', _273 => _273("status"), 'optionalAccess', _274 => _274.get, 'call', _275 => _275(num(x["status"]))]);
|
|
23912
23944
|
const notActive = statusLabel !== void 0 ? NOT_ACTIVE_LABEL_RE.test(statusLabel) : labels === null && SUBSCRIPTION_NOT_ACTIVE_STATUS_IDS.has(num(x["status"]));
|
|
23913
23945
|
if (notActive) cancelledSubs.add(sid);
|
|
23914
23946
|
}
|
|
@@ -24609,7 +24641,7 @@ var ContractsResource = class extends BaseResource {
|
|
|
24609
24641
|
}
|
|
24610
24642
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
24611
24643
|
async get(id, opts = {}) {
|
|
24612
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
24644
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _276 => _276.fresh]) === true);
|
|
24613
24645
|
}
|
|
24614
24646
|
/** Create a record (OperationResultModel → { id}). `dryRun: true` returns the
|
|
24615
24647
|
* pinned envelope (section 19.3) and never issues the create. A 2xx that is not the
|
|
@@ -24645,7 +24677,7 @@ var ContractsResource = class extends BaseResource {
|
|
|
24645
24677
|
/** Search Contract records: bounded contains on contractName (no vendor free-text search exists);
|
|
24646
24678
|
* limit defaults to 25, max 500. */
|
|
24647
24679
|
async search(query, opts) {
|
|
24648
|
-
return this.searchBase(query, { limit: _optionalChain([opts, 'optionalAccess',
|
|
24680
|
+
return this.searchBase(query, { limit: _optionalChain([opts, 'optionalAccess', _277 => _277.limit]) });
|
|
24649
24681
|
}
|
|
24650
24682
|
/** Node-parity special op (hand-written in src/resources/special/contracts.ts). */
|
|
24651
24683
|
profitability(id, opts) {
|
|
@@ -24685,28 +24717,28 @@ async function pdf(_resource, id, http) {
|
|
|
24685
24717
|
return decodeFileData(res);
|
|
24686
24718
|
}
|
|
24687
24719
|
async function windowQuery2(_resource, kind, http, opts) {
|
|
24688
|
-
const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
24689
|
-
const tz = _optionalChain([opts, 'optionalAccess',
|
|
24720
|
+
const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _278 => _278.now]), () => ( /* @__PURE__ */ new Date()));
|
|
24721
|
+
const tz = _optionalChain([opts, 'optionalAccess', _279 => _279.tz]) === void 0 ? void 0 : validateZone(opts.tz, `invoices.${kind}`);
|
|
24690
24722
|
return dateWindowQuery(
|
|
24691
24723
|
http,
|
|
24692
24724
|
"/V1.0/Invoices/query",
|
|
24693
24725
|
"invoiceDateTime",
|
|
24694
24726
|
kind,
|
|
24695
|
-
clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
24727
|
+
clampWindowLimit(_optionalChain([opts, 'optionalAccess', _280 => _280.limit])),
|
|
24696
24728
|
`invoices.${kind}`,
|
|
24697
24729
|
now,
|
|
24698
24730
|
tz
|
|
24699
24731
|
);
|
|
24700
24732
|
}
|
|
24701
24733
|
async function customRange2(_resource, from, to, http, opts) {
|
|
24702
|
-
const zone = _optionalChain([opts, 'optionalAccess',
|
|
24734
|
+
const zone = _optionalChain([opts, 'optionalAccess', _281 => _281.tz]) === void 0 ? void 0 : validateZone(opts.tz, "invoices.customRange");
|
|
24703
24735
|
return customRangeQuery(
|
|
24704
24736
|
http,
|
|
24705
24737
|
"/V1.0/Invoices/query",
|
|
24706
24738
|
"invoiceDateTime",
|
|
24707
24739
|
from,
|
|
24708
24740
|
to,
|
|
24709
|
-
clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
24741
|
+
clampWindowLimit(_optionalChain([opts, 'optionalAccess', _282 => _282.limit])),
|
|
24710
24742
|
"invoices.customRange",
|
|
24711
24743
|
zone
|
|
24712
24744
|
);
|
|
@@ -24738,7 +24770,7 @@ var InvoicesResource = class extends BaseResource {
|
|
|
24738
24770
|
}
|
|
24739
24771
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
24740
24772
|
async get(id, opts = {}) {
|
|
24741
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
24773
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _283 => _283.fresh]) === true);
|
|
24742
24774
|
}
|
|
24743
24775
|
/** Update a record (PUT on the COLLECTION — the vendored spec's item path is GET-only; the vendor
|
|
24744
24776
|
* keys the record by the id in the body). The vendor validates the FULL model on this route (V2), so a
|
|
@@ -24852,7 +24884,7 @@ var OrganizationalLevel1sResource = class extends BaseResource {
|
|
|
24852
24884
|
}
|
|
24853
24885
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
24854
24886
|
async get(id, opts = {}) {
|
|
24855
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
24887
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _284 => _284.fresh]) === true);
|
|
24856
24888
|
}
|
|
24857
24889
|
/** Create a record (OperationResultModel → { id}). `dryRun: true` returns the
|
|
24858
24890
|
* pinned envelope (section 19.3) and never issues the create. A 2xx that is not the
|
|
@@ -24903,7 +24935,7 @@ var OrganizationalLevel2sResource = class extends BaseResource {
|
|
|
24903
24935
|
}
|
|
24904
24936
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
24905
24937
|
async get(id, opts = {}) {
|
|
24906
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
24938
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _285 => _285.fresh]) === true);
|
|
24907
24939
|
}
|
|
24908
24940
|
/** Create a record (OperationResultModel → { id}). `dryRun: true` returns the
|
|
24909
24941
|
* pinned envelope (section 19.3) and never issues the create. A 2xx that is not the
|
|
@@ -24954,7 +24986,7 @@ var OrganizationalLevelAssociationsResource = class extends BaseResource {
|
|
|
24954
24986
|
}
|
|
24955
24987
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
24956
24988
|
async get(id, opts = {}) {
|
|
24957
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
24989
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _286 => _286.fresh]) === true);
|
|
24958
24990
|
}
|
|
24959
24991
|
/** Create a record (OperationResultModel → { id}). `dryRun: true` returns the
|
|
24960
24992
|
* pinned envelope (section 19.3) and never issues the create. A 2xx that is not the
|
|
@@ -25026,7 +25058,7 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
|
|
|
25026
25058
|
if (typeof destination === "number" && destination < 1) {
|
|
25027
25059
|
throw new AutotaskConfigError("transferOwnership: destinationResourceId must be a positive integer");
|
|
25028
25060
|
}
|
|
25029
|
-
const dryRun = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
25061
|
+
const dryRun = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _287 => _287.dryRun]), () => ( true));
|
|
25030
25062
|
const changes = [];
|
|
25031
25063
|
const applied = [];
|
|
25032
25064
|
for (const id of ids2) {
|
|
@@ -25035,7 +25067,7 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
|
|
|
25035
25067
|
method: "GET",
|
|
25036
25068
|
path: `/V1.0/Companies/${id}`,
|
|
25037
25069
|
operation: "resources.transferOwnership",
|
|
25038
|
-
maxRetries: _optionalChain([opts, 'optionalAccess',
|
|
25070
|
+
maxRetries: _optionalChain([opts, 'optionalAccess', _288 => _288.maxRetries])
|
|
25039
25071
|
});
|
|
25040
25072
|
const company = unwrapItem(res, id, void 0, "company");
|
|
25041
25073
|
const current = typeof company.ownerResourceID === "number" ? company.ownerResourceID : null;
|
|
@@ -25046,7 +25078,7 @@ async function transferOwnership(_resource, companyIds, destinationResourceId, h
|
|
|
25046
25078
|
path: "/V1.0/Companies",
|
|
25047
25079
|
body: { id, ownerResourceID: destination },
|
|
25048
25080
|
operation: "resources.transferOwnership",
|
|
25049
|
-
maxRetries: _optionalChain([opts, 'optionalAccess',
|
|
25081
|
+
maxRetries: _optionalChain([opts, 'optionalAccess', _289 => _289.maxRetries])
|
|
25050
25082
|
});
|
|
25051
25083
|
unwrapOperation(update);
|
|
25052
25084
|
applied.push(id);
|
|
@@ -25115,7 +25147,7 @@ var ResourcesResource = class extends BaseResource {
|
|
|
25115
25147
|
}
|
|
25116
25148
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
25117
25149
|
async get(id, opts = {}) {
|
|
25118
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
25150
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _290 => _290.fresh]) === true);
|
|
25119
25151
|
}
|
|
25120
25152
|
/** Update a record (PUT on the COLLECTION — the vendored spec's item path is GET-only; the vendor
|
|
25121
25153
|
* keys the record by the id in the body). The vendor validates the FULL model on this route (V2), so a
|
|
@@ -25143,7 +25175,7 @@ var ResourcesResource = class extends BaseResource {
|
|
|
25143
25175
|
/** Search Resource records: bounded contains on firstName + lastName (no vendor free-text search exists);
|
|
25144
25176
|
* limit defaults to 25, max 500. */
|
|
25145
25177
|
async search(query, opts) {
|
|
25146
|
-
return this.searchBase(query, { limit: _optionalChain([opts, 'optionalAccess',
|
|
25178
|
+
return this.searchBase(query, { limit: _optionalChain([opts, 'optionalAccess', _291 => _291.limit]) });
|
|
25147
25179
|
}
|
|
25148
25180
|
/** Node-parity special op (hand-written in src/resources/special/resources.ts). */
|
|
25149
25181
|
transferOwnership(sourceResourceIds, destinationResourceId, opts = {}) {
|
|
@@ -25178,7 +25210,7 @@ function uiHostFromBase(baseUrl) {
|
|
|
25178
25210
|
} catch (e20) {
|
|
25179
25211
|
return void 0;
|
|
25180
25212
|
}
|
|
25181
|
-
const n = _optionalChain([REST_HOST, 'access',
|
|
25213
|
+
const n = _optionalChain([REST_HOST, 'access', _292 => _292.exec, 'call', _293 => _293(hostname), 'optionalAccess', _294 => _294[1]]);
|
|
25182
25214
|
return n === void 0 ? void 0 : `ww${n}.autotask.net`;
|
|
25183
25215
|
}
|
|
25184
25216
|
function buildUiLink(input) {
|
|
@@ -25231,7 +25263,7 @@ async function postedStateOf(http, entries, op, beforeRequest) {
|
|
|
25231
25263
|
let incomplete = false;
|
|
25232
25264
|
for (let c = 0; c < ids2.length; c += FETCH_BY_IDS_CHUNK_SIZE) {
|
|
25233
25265
|
const chunk = ids2.slice(c, c + FETCH_BY_IDS_CHUNK_SIZE);
|
|
25234
|
-
_optionalChain([beforeRequest, 'optionalCall',
|
|
25266
|
+
_optionalChain([beforeRequest, 'optionalCall', _295 => _295()]);
|
|
25235
25267
|
const res = await http.request({
|
|
25236
25268
|
method: "POST",
|
|
25237
25269
|
idempotent: true,
|
|
@@ -25278,11 +25310,11 @@ async function queryTimeEntries(_resource, filter, limit, operation, http, curso
|
|
|
25278
25310
|
return { items, hasMore: pageDetails.nextPageUrl != null, nextCursor: _nullishCoalesce(pageDetails.nextPageUrl, () => ( null)) };
|
|
25279
25311
|
}
|
|
25280
25312
|
function pagingOpts(opts, OP9) {
|
|
25281
|
-
if (_optionalChain([opts, 'optionalAccess',
|
|
25313
|
+
if (_optionalChain([opts, 'optionalAccess', _296 => _296.countOnly]) !== void 0 && typeof opts.countOnly !== "boolean") {
|
|
25282
25314
|
throw new AutotaskConfigError(`${OP9}: countOnly must be a boolean`, { operation: OP9 });
|
|
25283
25315
|
}
|
|
25284
|
-
const countOnly = _optionalChain([opts, 'optionalAccess',
|
|
25285
|
-
const cursor = _optionalChain([opts, 'optionalAccess',
|
|
25316
|
+
const countOnly = _optionalChain([opts, 'optionalAccess', _297 => _297.countOnly]) === true;
|
|
25317
|
+
const cursor = _optionalChain([opts, 'optionalAccess', _298 => _298.cursor]);
|
|
25286
25318
|
if (cursor !== void 0 && (typeof cursor !== "string" || cursor.trim() === "")) {
|
|
25287
25319
|
throw new AutotaskConfigError(`${OP9}: cursor must be the non-empty nextCursor of a previous call`, { operation: OP9 });
|
|
25288
25320
|
}
|
|
@@ -25292,9 +25324,9 @@ function pagingOpts(opts, OP9) {
|
|
|
25292
25324
|
if (cursor !== void 0 && countOnly) {
|
|
25293
25325
|
throw new AutotaskConfigError(`${OP9}: cursor does not apply with countOnly (countOnly reads every page itself)`, { operation: OP9 });
|
|
25294
25326
|
}
|
|
25295
|
-
const budget = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
25327
|
+
const budget = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _299 => _299.maxVendorCalls]), () => ( COUNT_BUDGET_DEFAULT));
|
|
25296
25328
|
if (!Number.isInteger(budget) || budget < 1 || budget > COUNT_BUDGET_MAX) {
|
|
25297
|
-
throw new AutotaskConfigError(`${OP9}: maxVendorCalls must be an integer 1-${COUNT_BUDGET_MAX} (got ${String(_optionalChain([opts, 'optionalAccess',
|
|
25329
|
+
throw new AutotaskConfigError(`${OP9}: maxVendorCalls must be an integer 1-${COUNT_BUDGET_MAX} (got ${String(_optionalChain([opts, 'optionalAccess', _300 => _300.maxVendorCalls]))})`, { operation: OP9 });
|
|
25298
25330
|
}
|
|
25299
25331
|
return { ...cursor === void 0 ? {} : { cursor }, countOnly, budget };
|
|
25300
25332
|
}
|
|
@@ -25365,18 +25397,18 @@ async function countPostedState(http, filter, OP9, budget, window) {
|
|
|
25365
25397
|
return { window, total: states.size, postedCount, unpostedCount: states.size - postedCount, vendorCalls: issued, estimate, budget };
|
|
25366
25398
|
}
|
|
25367
25399
|
async function windowQuery3(_resource, kind, http, opts) {
|
|
25368
|
-
const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
25369
|
-
const tz = _optionalChain([opts, 'optionalAccess',
|
|
25400
|
+
const now = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _301 => _301.now]), () => ( /* @__PURE__ */ new Date()));
|
|
25401
|
+
const tz = _optionalChain([opts, 'optionalAccess', _302 => _302.tz]) === void 0 ? void 0 : validateZone(opts.tz, `time_entries.${kind}`);
|
|
25370
25402
|
const { from, to } = dateOnlyWindowBounds(kind, now, tz);
|
|
25371
25403
|
const filter = [
|
|
25372
25404
|
{ field: "dateWorked", op: "gte", value: from },
|
|
25373
25405
|
{ field: "dateWorked", op: "lte", value: to }
|
|
25374
25406
|
];
|
|
25375
|
-
const { items } = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
25407
|
+
const { items } = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess', _303 => _303.limit])), `time_entries.${kind}`, http);
|
|
25376
25408
|
return items;
|
|
25377
25409
|
}
|
|
25378
25410
|
async function customRange3(_resource, from, to, http, opts) {
|
|
25379
|
-
if (_optionalChain([opts, 'optionalAccess',
|
|
25411
|
+
if (_optionalChain([opts, 'optionalAccess', _304 => _304.tz]) !== void 0) validateZone(opts.tz, "time_entries.customRange");
|
|
25380
25412
|
const fromB = customRangeDay(from, "from", void 0, "customRange");
|
|
25381
25413
|
const toB = customRangeDay(to, "to", void 0, "customRange");
|
|
25382
25414
|
if (fromB.ms > toB.ms) {
|
|
@@ -25387,7 +25419,7 @@ async function customRange3(_resource, from, to, http, opts) {
|
|
|
25387
25419
|
{ field: "dateWorked", op: "gte", value: iso2(fromB.ms) },
|
|
25388
25420
|
{ field: "dateWorked", op: "lte", value: iso2(toEndMs) }
|
|
25389
25421
|
];
|
|
25390
|
-
const { items } = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
25422
|
+
const { items } = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess', _305 => _305.limit])), "time_entries.customRange", http);
|
|
25391
25423
|
return items;
|
|
25392
25424
|
}
|
|
25393
25425
|
async function postedStateQuery(_resource, mode, http, opts) {
|
|
@@ -25395,16 +25427,16 @@ async function postedStateQuery(_resource, mode, http, opts) {
|
|
|
25395
25427
|
const paging = pagingOpts(opts, operation);
|
|
25396
25428
|
const window = { from: null, to: null };
|
|
25397
25429
|
const filter = [];
|
|
25398
|
-
const fromB = _optionalChain([opts, 'optionalAccess',
|
|
25399
|
-
const toB = _optionalChain([opts, 'optionalAccess',
|
|
25430
|
+
const fromB = _optionalChain([opts, 'optionalAccess', _306 => _306.dateFrom]) === void 0 ? void 0 : customRangeDay(opts.dateFrom, "from", void 0, operation);
|
|
25431
|
+
const toB = _optionalChain([opts, 'optionalAccess', _307 => _307.dateTo]) === void 0 ? void 0 : customRangeDay(opts.dateTo, "to", void 0, operation);
|
|
25400
25432
|
if (fromB && toB && fromB.ms > toB.ms) {
|
|
25401
25433
|
throw new AutotaskConfigError(`${operation}: dateFrom (${iso2(fromB.ms)}) must not be after dateTo (${iso2(toB.ms)})`, { operation });
|
|
25402
25434
|
}
|
|
25403
25435
|
if (fromB) filter.push({ field: "dateWorked", op: "gte", value: window.from = iso2(fromB.ms) });
|
|
25404
25436
|
if (toB) filter.push({ field: "dateWorked", op: "lte", value: window.to = iso2(toB.ms + DAY_MS2 - 1) });
|
|
25405
|
-
if (_optionalChain([opts, 'optionalAccess',
|
|
25437
|
+
if (_optionalChain([opts, 'optionalAccess', _308 => _308.ticketID]) !== void 0) filter.push({ field: "ticketID", op: "eq", value: opts.ticketID });
|
|
25406
25438
|
if (paging.countOnly) return countPostedState(http, filter, operation, paging.budget, window);
|
|
25407
|
-
const read = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
25439
|
+
const read = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess', _309 => _309.limit])), operation, http, paging.cursor);
|
|
25408
25440
|
const { states, incomplete } = await postedStateOf(http, read.items, operation);
|
|
25409
25441
|
const items = read.items.filter((e) => states.get(e.id) === mode);
|
|
25410
25442
|
const approvedCount = items.filter(isApproved).length;
|
|
@@ -25414,7 +25446,7 @@ async function postedStateQuery(_resource, mode, http, opts) {
|
|
|
25414
25446
|
async function postedWithin(_resource, from, to, http, opts, opLabel = "time_entries.postedWithin") {
|
|
25415
25447
|
const OP9 = opLabel;
|
|
25416
25448
|
const paging = pagingOpts(opts, OP9);
|
|
25417
|
-
if (_optionalChain([opts, 'optionalAccess',
|
|
25449
|
+
if (_optionalChain([opts, 'optionalAccess', _310 => _310.tz]) !== void 0) validateZone(opts.tz, OP9);
|
|
25418
25450
|
const fromB = customRangeDay(from, "from", void 0, OP9);
|
|
25419
25451
|
const toB = customRangeDay(to, "to", void 0, OP9);
|
|
25420
25452
|
if (fromB.ms > toB.ms) {
|
|
@@ -25425,11 +25457,11 @@ async function postedWithin(_resource, from, to, http, opts, opLabel = "time_ent
|
|
|
25425
25457
|
{ field: "dateWorked", op: "gte", value: iso2(fromB.ms) },
|
|
25426
25458
|
{ field: "dateWorked", op: "lte", value: iso2(windowToMs) }
|
|
25427
25459
|
];
|
|
25428
|
-
if (_optionalChain([opts, 'optionalAccess',
|
|
25429
|
-
if (_optionalChain([opts, 'optionalAccess',
|
|
25460
|
+
if (_optionalChain([opts, 'optionalAccess', _311 => _311.ticketID]) !== void 0) filter.push({ field: "ticketID", op: "eq", value: opts.ticketID });
|
|
25461
|
+
if (_optionalChain([opts, 'optionalAccess', _312 => _312.resourceID]) !== void 0) filter.push({ field: "resourceID", op: "eq", value: opts.resourceID });
|
|
25430
25462
|
const window = { from: iso2(fromB.ms), to: iso2(windowToMs) };
|
|
25431
25463
|
if (paging.countOnly) return countPostedState(http, filter, OP9, paging.budget, window);
|
|
25432
|
-
const { items, hasMore, nextCursor } = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess',
|
|
25464
|
+
const { items, hasMore, nextCursor } = await queryTimeEntries(_resource, filter, clampWindowLimit(_optionalChain([opts, 'optionalAccess', _313 => _313.limit])), OP9, http, paging.cursor);
|
|
25433
25465
|
const { states, incomplete } = await postedStateOf(http, items, OP9);
|
|
25434
25466
|
let postedCount = 0;
|
|
25435
25467
|
let unpostedCount = 0;
|
|
@@ -25437,7 +25469,7 @@ async function postedWithin(_resource, from, to, http, opts, opLabel = "time_ent
|
|
|
25437
25469
|
if (state === "posted") postedCount += 1;
|
|
25438
25470
|
else unpostedCount += 1;
|
|
25439
25471
|
}
|
|
25440
|
-
const keep = _optionalChain([opts, 'optionalAccess',
|
|
25472
|
+
const keep = _optionalChain([opts, 'optionalAccess', _314 => _314.posted]) === void 0 ? void 0 : opts.posted ? "posted" : "unposted";
|
|
25441
25473
|
return {
|
|
25442
25474
|
items: keep === void 0 ? items : items.filter((e) => states.get(e.id) === keep),
|
|
25443
25475
|
postedCount,
|
|
@@ -25887,7 +25919,7 @@ function sameValue(a, b) {
|
|
|
25887
25919
|
async function readTicket(http, id, retries, operation) {
|
|
25888
25920
|
try {
|
|
25889
25921
|
const res = await http.request({ method: "GET", path: `/V1.0/Tickets/${id}`, operation, maxRetries: retries });
|
|
25890
|
-
const item = _optionalChain([res, 'optionalAccess',
|
|
25922
|
+
const item = _optionalChain([res, 'optionalAccess', _315 => _315.item]);
|
|
25891
25923
|
return _nullishCoalesce(item, () => ( null));
|
|
25892
25924
|
} catch (e) {
|
|
25893
25925
|
if (isAutotaskError(e) && (e.httpStatus === 404 || e.code === "NOT_FOUND")) return null;
|
|
@@ -25932,7 +25964,7 @@ async function preview(http, spec, sourceId, toTicketId, opts) {
|
|
|
25932
25964
|
const facts = {
|
|
25933
25965
|
closedStatus: { closedIds: closedStatus.closedIds, source: closedStatus.source, note: closedStatus.note },
|
|
25934
25966
|
sourceTicketId,
|
|
25935
|
-
sourceCompanyID: _nullishCoalesce(_optionalChain([origin, 'optionalAccess',
|
|
25967
|
+
sourceCompanyID: _nullishCoalesce(_optionalChain([origin, 'optionalAccess', _316 => _316.companyID]), () => ( null)),
|
|
25936
25968
|
targetCompanyID: _nullishCoalesce(target.companyID, () => ( null)),
|
|
25937
25969
|
companyChanged: origin === null ? null : origin.companyID !== target.companyID,
|
|
25938
25970
|
contractChanged: origin === null ? null : (_nullishCoalesce(origin.contractID, () => ( null))) !== (_nullishCoalesce(target.contractID, () => ( null)))
|
|
@@ -26050,7 +26082,7 @@ var CONTRACT_SCOPED = ["contractID", "contractServiceID", "contractServiceBundle
|
|
|
26050
26082
|
async function readTimeEntry(http, id, retries) {
|
|
26051
26083
|
try {
|
|
26052
26084
|
const res = await http.request({ method: "GET", path: `/V1.0/TimeEntries/${id}`, operation: OP6, maxRetries: retries });
|
|
26053
|
-
return _nullishCoalesce(_optionalChain([res, 'optionalAccess',
|
|
26085
|
+
return _nullishCoalesce(_optionalChain([res, 'optionalAccess', _317 => _317.item]), () => ( null));
|
|
26054
26086
|
} catch (e) {
|
|
26055
26087
|
if (isAutotaskError(e) && (e.httpStatus === 404 || e.code === "NOT_FOUND")) return null;
|
|
26056
26088
|
throw e;
|
|
@@ -26269,17 +26301,17 @@ async function recentTickets(_resource, from, to, http, opts) {
|
|
|
26269
26301
|
for (const [ticketID, g] of groups) {
|
|
26270
26302
|
const t = tickets.get(ticketID);
|
|
26271
26303
|
if (t === void 0) unresolvedTicketIDs.push(ticketID);
|
|
26272
|
-
if (companyID !== void 0 && _optionalChain([t, 'optionalAccess',
|
|
26304
|
+
if (companyID !== void 0 && _optionalChain([t, 'optionalAccess', _318 => _318.companyID]) !== companyID) {
|
|
26273
26305
|
if (t !== void 0) excludedTickets += 1;
|
|
26274
26306
|
continue;
|
|
26275
26307
|
}
|
|
26276
26308
|
items.push({
|
|
26277
26309
|
ticketID,
|
|
26278
|
-
..._optionalChain([t, 'optionalAccess',
|
|
26279
|
-
..._optionalChain([t, 'optionalAccess',
|
|
26280
|
-
..._optionalChain([t, 'optionalAccess',
|
|
26281
|
-
..._optionalChain([t, 'optionalAccess',
|
|
26282
|
-
..._optionalChain([t, 'optionalAccess',
|
|
26310
|
+
..._optionalChain([t, 'optionalAccess', _319 => _319.ticketNumber]) !== void 0 ? { ticketNumber: t.ticketNumber } : {},
|
|
26311
|
+
..._optionalChain([t, 'optionalAccess', _320 => _320.title]) !== void 0 ? { title: t.title } : {},
|
|
26312
|
+
..._optionalChain([t, 'optionalAccess', _321 => _321.status]) !== void 0 ? { status: t.status } : {},
|
|
26313
|
+
..._optionalChain([t, 'optionalAccess', _322 => _322.assignedResourceID]) !== void 0 ? { assignedResourceID: t.assignedResourceID } : {},
|
|
26314
|
+
..._optionalChain([t, 'optionalAccess', _323 => _323.companyID]) !== void 0 ? { companyID: t.companyID } : {},
|
|
26283
26315
|
entryCount: g.entryCount,
|
|
26284
26316
|
totalHours: Math.round(g.totalHours * 100) / 100,
|
|
26285
26317
|
lastWorked: g.lastWorked
|
|
@@ -26323,7 +26355,7 @@ var TimeEntriesResource = class extends BaseResource {
|
|
|
26323
26355
|
}
|
|
26324
26356
|
/** Get one record by id (item envelope; item: null → NotFoundError). `fresh: true` bypasses the read-cache lookup and refreshes the entry (issue #250). */
|
|
26325
26357
|
async get(id, opts = {}) {
|
|
26326
|
-
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess',
|
|
26358
|
+
return this.getGlobal(id, _optionalChain([opts, 'optionalAccess', _324 => _324.fresh]) === true);
|
|
26327
26359
|
}
|
|
26328
26360
|
/** Create a record (OperationResultModel → { id}). `dryRun: true` returns the
|
|
26329
26361
|
* pinned envelope (section 19.3) and never issues the create. A 2xx that is not the
|
|
@@ -26657,4 +26689,5 @@ var TimeEntriesResource = class extends BaseResource {
|
|
|
26657
26689
|
|
|
26658
26690
|
|
|
26659
26691
|
|
|
26660
|
-
exports.AUTH_HEADERS = AUTH_HEADERS; exports.buildAuthHeaders = buildAuthHeaders; exports.withAuthHeaders = withAuthHeaders; exports.AutotaskError = AutotaskError; exports.AutotaskConfigError = AutotaskConfigError; exports.isAutotaskError = isAutotaskError; exports.AutotaskNetworkError = AutotaskNetworkError; exports.AutotaskTimeoutError = AutotaskTimeoutError; exports.AutotaskAbortError = AutotaskAbortError; exports.ResponseRejectedError = ResponseRejectedError; exports.BadRequestError = BadRequestError; exports.UnauthorizedError = UnauthorizedError; exports.ForbiddenError = ForbiddenError; exports.NotFoundError = NotFoundError; exports.ConflictError = ConflictError; exports.UnprocessableEntityError = UnprocessableEntityError; exports.RateLimitError = RateLimitError; exports.ServerError = ServerError; exports.UnexpectedContentTypeError = UnexpectedContentTypeError; exports.EmptyResponseError = EmptyResponseError; exports.CircuitBreakerError = CircuitBreakerError; exports.HostPolicyDeniedError = HostPolicyDeniedError; exports.ResolutionError = ResolutionError; exports.PaginationLimitError = PaginationLimitError; exports.QueryTooLongError = QueryTooLongError; exports.parseVendorErrors = parseVendorErrors; exports.isDeterministicVendor500 = isDeterministicVendor500; exports.formatVendorDetail = formatVendorDetail; exports.NoopLogger = NoopLogger; exports.REDACTED = REDACTED; exports.CREDENTIAL_HEADER_NAMES = CREDENTIAL_HEADER_NAMES; exports.isCredentialHeaderName = isCredentialHeaderName; exports.redactRecord = redactRecord; exports.SECRET_RESPONSE_FIELDS = SECRET_RESPONSE_FIELDS; exports.PERSONAL_RESPONSE_FIELDS = PERSONAL_RESPONSE_FIELDS; exports.CONFIDENTIAL_RESPONSE_FIELDS = CONFIDENTIAL_RESPONSE_FIELDS; exports.isRedactedFieldName = isRedactedFieldName; exports.redactResponseBody = redactResponseBody; exports.CREDENTIAL_SHAPE_POINTER = CREDENTIAL_SHAPE_POINTER; exports.mergeDetails = mergeDetails; exports.errorFromStatus = errorFromStatus; exports.StaleObjectError = StaleObjectError; exports.ConfirmationRequiredError = ConfirmationRequiredError; exports.DeleteBoundaryError = DeleteBoundaryError; exports.MarkerUnsafeIdError = MarkerUnsafeIdError; exports.RecoveryTruncatedError = RecoveryTruncatedError; exports.MoveRefusedError = MoveRefusedError; exports.READ_CACHE_MAX_ENTRIES = READ_CACHE_MAX_ENTRIES; exports.ReadCache = ReadCache; exports.ZONE_CATALOG = ZONE_CATALOG; exports.ZONES = ZONES; exports.DEFAULT_ZONE = DEFAULT_ZONE; exports.zoneUrl = zoneUrl; exports.resolveBaseUrl = resolveBaseUrl; exports.AGENT_PROFILE = AGENT_PROFILE; exports.DEFAULT_PAGE_SIZE = DEFAULT_PAGE_SIZE; exports.MAX_PAGE_SIZE = MAX_PAGE_SIZE; exports.DEFAULT_TIMEOUT_MS = DEFAULT_TIMEOUT_MS; exports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES; exports.DEFAULT_MAINTENANCE_MAX_WAIT_MS = DEFAULT_MAINTENANCE_MAX_WAIT_MS; exports.DEFAULT_MAINTENANCE_POLL_MS = DEFAULT_MAINTENANCE_POLL_MS; exports.MAINTENANCE_WINDOW_MAX_MS = MAINTENANCE_WINDOW_MAX_MS; exports.DEFAULT_MAX_CONCURRENT = DEFAULT_MAX_CONCURRENT; exports.DEFAULT_MAX_RESPONSE_BYTES = DEFAULT_MAX_RESPONSE_BYTES; exports.DEFAULT_MAX_SCAN_RECORDS = DEFAULT_MAX_SCAN_RECORDS; exports.DEFAULT_MAX_SCAN_PAGES = DEFAULT_MAX_SCAN_PAGES; exports.DEFAULT_READ_CACHE_TTL_MS = DEFAULT_READ_CACHE_TTL_MS; exports.DEFAULT_FIELD_CACHE_TTL_MS = DEFAULT_FIELD_CACHE_TTL_MS; exports.DEFAULT_RESOURCE_NAME_CACHE_TTL_MS = DEFAULT_RESOURCE_NAME_CACHE_TTL_MS; exports.hasSurroundingQuotes = hasSurroundingQuotes; exports.credentialShapeProblem = credentialShapeProblem; exports.CREDENTIAL_ENV_LOAD_ACTION = CREDENTIAL_ENV_LOAD_ACTION; exports.MIN_PREFIX_SUMMARY_LENGTH = MIN_PREFIX_SUMMARY_LENGTH; exports.credentialValueSummary = credentialValueSummary; exports.FIELD_CACHE_KINDS = FIELD_CACHE_KINDS; exports.DEFAULT_CIRCUIT_BREAKER_WINDOW_MS = DEFAULT_CIRCUIT_BREAKER_WINDOW_MS; exports.DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD = DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD; exports.DEFAULT_CIRCUIT_BREAKER_OPEN_TIMEOUT_MS = DEFAULT_CIRCUIT_BREAKER_OPEN_TIMEOUT_MS; exports.DEFAULT_CIRCUIT_BREAKER_SUCCESSES_TO_CLOSE = DEFAULT_CIRCUIT_BREAKER_SUCCESSES_TO_CLOSE; exports.DEFAULT_CIRCUIT_BREAKER_MAX_ENTRIES = DEFAULT_CIRCUIT_BREAKER_MAX_ENTRIES; exports.InMemoryCircuitBreakerStore = InMemoryCircuitBreakerStore; exports.defaultCircuitBreakerStore = defaultCircuitBreakerStore; exports.resetDefaultCircuitBreakerStore = resetDefaultCircuitBreakerStore; exports.buildBreakerKey = buildBreakerKey; exports.isBreakerFailure = isBreakerFailure; exports.DEFAULT_COOLDOWN_MAX_MS = DEFAULT_COOLDOWN_MAX_MS; exports.DEFAULT_COOLDOWN_DEFAULT_MS = DEFAULT_COOLDOWN_DEFAULT_MS; exports.DEFAULT_COOLDOWN_MAX_ENTRIES = DEFAULT_COOLDOWN_MAX_ENTRIES; exports.InMemoryCooldownStore = InMemoryCooldownStore; exports.defaultCooldownStore = defaultCooldownStore; exports.resetDefaultCooldownStore = resetDefaultCooldownStore; exports.buildTenantKey = buildTenantKey; exports.cooldownDurationMs = cooldownDurationMs; exports.resolveCredentials = resolveCredentials; exports.buildReadCache = buildReadCache; exports.resolveConfig = resolveConfig; exports.IDEMPOTENT_METHODS = IDEMPOTENT_METHODS; exports.isRecord = isRecord2; exports.assertRecord = assertRecord; exports.deepMergeParams = deepMergeParams; exports.isIdentifierCandidate = isIdentifierCandidate; exports.parseIdentifier = parseIdentifier; exports.flattenUdfs = flattenUdfs; exports.newCorrelationId = newCorrelationId; exports.redactAuditBody = redactAuditBody; exports.camelKey = camelKey; exports.FILTER_OPERATORS = FILTER_OPERATORS; exports.GROUPING_OPERATORS = GROUPING_OPERATORS; exports.MAX_OR_CONDITIONS = MAX_OR_CONDITIONS; exports.MAX_UDF_PER_QUERY = MAX_UDF_PER_QUERY; exports.MAX_QUERY_LENGTH = MAX_QUERY_LENGTH; exports.MAX_GET_LENGTH = MAX_GET_LENGTH; exports.MAX_FIELD_LENGTH = MAX_FIELD_LENGTH; exports.isFilterOperator = isFilterOperator; exports.serializeFilter = serializeFilter; exports.validateFilter = validateFilter; exports.buildFilter = buildFilter; exports.normalizedConditions = normalizedConditions; exports.normalizeInValues = normalizeInValues; exports.assertNoRelationLeaf = assertNoRelationLeaf; exports.buildUrl = buildUrl; exports.cursorToPath = cursorToPath; exports.buildQueryBody = buildQueryBody; exports.buildQueryRequest = buildQueryRequest; exports.runWithSignal = runWithSignal; exports.RELATIONSHIP_ZONE = RELATIONSHIP_ZONE; exports.RELATIONSHIP_MAP = RELATIONSHIP_MAP; exports.DELETE_BOUNDARY_NOTES = DELETE_BOUNDARY_NOTES; exports.MARKER_FIELDS = MARKER_FIELDS; exports.BLIND_SURFACE_INVENTORY = BLIND_SURFACE_INVENTORY; exports.REACHABILITY_PROBE_DEFAULTS = REACHABILITY_PROBE_DEFAULTS; exports.CREATE_GUIDANCE = CREATE_GUIDANCE; exports.unwrapItems = unwrapItems; exports.unwrapItem = unwrapItem; exports.unwrapQueryCount = unwrapQueryCount; exports.unwrapOperation = unwrapOperation; exports.passthrough = passthrough; exports.HttpClient = HttpClient; exports.BOUNDED_QUERY_MAX_LIMIT = BOUNDED_QUERY_MAX_LIMIT; exports.buildDryRunResult = buildDryRunResult; exports.mergePartialBody = mergePartialBody; exports.effectiveRequiredFields = effectiveRequiredFields; exports.MAX_PAGES = MAX_PAGES; exports.clampPageSize = clampPageSize; exports.totalPagesFor = totalPagesFor; exports.paginate = paginate; exports.paginateItems = paginateItems; exports.collectAll = collectAll; exports.toArray = toArray; exports.FIELD_PRESETS = FIELD_PRESETS; exports.FIELD_PRESET_NAMES = FIELD_PRESET_NAMES; exports.resolveFieldsPreset = resolveFieldsPreset; exports.MODEL_DATE_FIELDS = MODEL_DATE_FIELDS; exports.EXPAND_RESOURCE_NAMES_MAX_IDS = EXPAND_RESOURCE_NAMES_MAX_IDS; exports.expandResourceNames = expandResourceNames; exports.ENTITY_TYPE_TO_RESOURCE = ENTITY_TYPE_TO_RESOURCE; exports.resourceForEntityType = resourceForEntityType; exports.isEnumerableResource = isEnumerableResource; exports.WORKFLOW_RESOURCES = WORKFLOW_RESOURCES; exports.MAX_FIELD_CATALOG_WIRE = MAX_FIELD_CATALOG_WIRE; exports.FIELD_CATALOG_HONESTY_NOTE = FIELD_CATALOG_HONESTY_NOTE; exports.MIN_FIELD_CATALOG_MAX_BYTES = MIN_FIELD_CATALOG_MAX_BYTES; exports.fieldCatalog = fieldCatalog; exports.PICKLIST_VALUE_NOT_SERVED_NOTE = PICKLIST_VALUE_NOT_SERVED_NOTE; exports.TICKET_LABEL_FIELDS = TICKET_LABEL_FIELDS; exports.createNamePlan = createNamePlan; exports.addNameSibling = addNameSibling; exports.addLabelSibling = addLabelSibling; exports.vendorId = vendorId; exports.resolveLineOfBusinessChain = resolveLineOfBusinessChain; exports.resolveCompositeNames = resolveCompositeNames; exports.readNamesOpt = readNamesOpt; exports.labelRows = labelRows; exports.BaseResource = BaseResource; exports.BillingCodesResource = BillingCodesResource; exports.BillingItemsResource = BillingItemsResource; exports.isDateYMD = isDateYMD; exports.monthsInWindow = monthsInWindow; exports.dayAfter = dayAfter; exports.num = num; exports.collectFilterFieldNames = collectFilterFieldNames; exports.validateQueryFieldNames = validateQueryFieldNames; exports.findUnknownFieldNames = findUnknownFieldNames; exports.resolveTicketStatusSemantics = resolveTicketStatusSemantics; exports.openStatusFilter = openStatusFilter; exports.isClosedStatus = isClosedStatus; exports.CompaniesResource = CompaniesResource; exports.PROFITABILITY_MAX_WINDOW_MONTHS = PROFITABILITY_MAX_WINDOW_MONTHS; exports.SERVICE_LINE_FKS = SERVICE_LINE_FKS; exports.CHARGE_LINE_FKS = CHARGE_LINE_FKS; exports.billingLineType = billingLineType; exports.internalAmount = internalAmount; exports.FETCH_MANY_MAX_ITEMS = FETCH_MANY_MAX_ITEMS; exports.validateFetchManyItems = validateFetchManyItems; exports.fetchMany = fetchMany; exports.FETCH_BY_IDS_MAX_ITEMS = FETCH_BY_IDS_MAX_ITEMS; exports.FETCH_BY_IDS_CHUNK_SIZE = FETCH_BY_IDS_CHUNK_SIZE; exports.fetchByIds = fetchByIds; exports.readPicklists = readPicklists; exports.ContractsResource = ContractsResource; exports.InvoicesResource = InvoicesResource; exports.OrganizationalLevel1sResource = OrganizationalLevel1sResource; exports.OrganizationalLevel2sResource = OrganizationalLevel2sResource; exports.OrganizationalLevelAssociationsResource = OrganizationalLevelAssociationsResource; exports.ResourcesResource = ResourcesResource; exports.UI_LINK_ENTITIES = UI_LINK_ENTITIES; exports.buildUiLink = buildUiLink; exports.uiLink = uiLink; exports.refuse = refuse; exports.queryRows = queryRows; exports.runMove = runMove; exports.uiLinkFor = uiLinkFor; exports.TimeEntriesResource = TimeEntriesResource;
|
|
26692
|
+
|
|
26693
|
+
exports.AUTH_HEADERS = AUTH_HEADERS; exports.buildAuthHeaders = buildAuthHeaders; exports.withAuthHeaders = withAuthHeaders; exports.AutotaskError = AutotaskError; exports.AutotaskConfigError = AutotaskConfigError; exports.isAutotaskError = isAutotaskError; exports.AutotaskNetworkError = AutotaskNetworkError; exports.AutotaskTimeoutError = AutotaskTimeoutError; exports.AutotaskAbortError = AutotaskAbortError; exports.ResponseRejectedError = ResponseRejectedError; exports.BadRequestError = BadRequestError; exports.UnauthorizedError = UnauthorizedError; exports.ForbiddenError = ForbiddenError; exports.NotFoundError = NotFoundError; exports.ConflictError = ConflictError; exports.UnprocessableEntityError = UnprocessableEntityError; exports.RateLimitError = RateLimitError; exports.ServerError = ServerError; exports.UnexpectedContentTypeError = UnexpectedContentTypeError; exports.EmptyResponseError = EmptyResponseError; exports.CircuitBreakerError = CircuitBreakerError; exports.HostPolicyDeniedError = HostPolicyDeniedError; exports.ResolutionError = ResolutionError; exports.PaginationLimitError = PaginationLimitError; exports.QueryTooLongError = QueryTooLongError; exports.parseVendorErrors = parseVendorErrors; exports.isDeterministicVendor500 = isDeterministicVendor500; exports.formatVendorDetail = formatVendorDetail; exports.NoopLogger = NoopLogger; exports.REDACTED = REDACTED; exports.CREDENTIAL_HEADER_NAMES = CREDENTIAL_HEADER_NAMES; exports.isCredentialHeaderName = isCredentialHeaderName; exports.redactRecord = redactRecord; exports.SECRET_RESPONSE_FIELDS = SECRET_RESPONSE_FIELDS; exports.PERSONAL_RESPONSE_FIELDS = PERSONAL_RESPONSE_FIELDS; exports.CONFIDENTIAL_RESPONSE_FIELDS = CONFIDENTIAL_RESPONSE_FIELDS; exports.isRedactedFieldName = isRedactedFieldName; exports.redactResponseBody = redactResponseBody; exports.CREDENTIAL_SHAPE_POINTER = CREDENTIAL_SHAPE_POINTER; exports.mergeDetails = mergeDetails; exports.errorFromStatus = errorFromStatus; exports.StaleObjectError = StaleObjectError; exports.ConfirmationRequiredError = ConfirmationRequiredError; exports.DeleteBoundaryError = DeleteBoundaryError; exports.MarkerUnsafeIdError = MarkerUnsafeIdError; exports.RecoveryTruncatedError = RecoveryTruncatedError; exports.MoveRefusedError = MoveRefusedError; exports.READ_CACHE_MAX_ENTRIES = READ_CACHE_MAX_ENTRIES; exports.ReadCache = ReadCache; exports.ZONE_CATALOG = ZONE_CATALOG; exports.ZONES = ZONES; exports.DEFAULT_ZONE = DEFAULT_ZONE; exports.zoneUrl = zoneUrl; exports.resolveBaseUrl = resolveBaseUrl; exports.AGENT_PROFILE = AGENT_PROFILE; exports.DEFAULT_PAGE_SIZE = DEFAULT_PAGE_SIZE; exports.MAX_PAGE_SIZE = MAX_PAGE_SIZE; exports.DEFAULT_TIMEOUT_MS = DEFAULT_TIMEOUT_MS; exports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES; exports.DEFAULT_MAINTENANCE_MAX_WAIT_MS = DEFAULT_MAINTENANCE_MAX_WAIT_MS; exports.DEFAULT_MAINTENANCE_POLL_MS = DEFAULT_MAINTENANCE_POLL_MS; exports.MAINTENANCE_WINDOW_MAX_MS = MAINTENANCE_WINDOW_MAX_MS; exports.DEFAULT_MAX_CONCURRENT = DEFAULT_MAX_CONCURRENT; exports.DEFAULT_MAX_RESPONSE_BYTES = DEFAULT_MAX_RESPONSE_BYTES; exports.DEFAULT_MAX_SCAN_RECORDS = DEFAULT_MAX_SCAN_RECORDS; exports.DEFAULT_MAX_SCAN_PAGES = DEFAULT_MAX_SCAN_PAGES; exports.DEFAULT_READ_CACHE_TTL_MS = DEFAULT_READ_CACHE_TTL_MS; exports.DEFAULT_FIELD_CACHE_TTL_MS = DEFAULT_FIELD_CACHE_TTL_MS; exports.DEFAULT_RESOURCE_NAME_CACHE_TTL_MS = DEFAULT_RESOURCE_NAME_CACHE_TTL_MS; exports.hasSurroundingQuotes = hasSurroundingQuotes; exports.credentialShapeProblem = credentialShapeProblem; exports.CREDENTIAL_ENV_LOAD_ACTION = CREDENTIAL_ENV_LOAD_ACTION; exports.MIN_PREFIX_SUMMARY_LENGTH = MIN_PREFIX_SUMMARY_LENGTH; exports.credentialValueSummary = credentialValueSummary; exports.FIELD_CACHE_KINDS = FIELD_CACHE_KINDS; exports.DEFAULT_CIRCUIT_BREAKER_WINDOW_MS = DEFAULT_CIRCUIT_BREAKER_WINDOW_MS; exports.DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD = DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD; exports.DEFAULT_CIRCUIT_BREAKER_OPEN_TIMEOUT_MS = DEFAULT_CIRCUIT_BREAKER_OPEN_TIMEOUT_MS; exports.DEFAULT_CIRCUIT_BREAKER_SUCCESSES_TO_CLOSE = DEFAULT_CIRCUIT_BREAKER_SUCCESSES_TO_CLOSE; exports.DEFAULT_CIRCUIT_BREAKER_MAX_ENTRIES = DEFAULT_CIRCUIT_BREAKER_MAX_ENTRIES; exports.InMemoryCircuitBreakerStore = InMemoryCircuitBreakerStore; exports.defaultCircuitBreakerStore = defaultCircuitBreakerStore; exports.resetDefaultCircuitBreakerStore = resetDefaultCircuitBreakerStore; exports.buildBreakerKey = buildBreakerKey; exports.isBreakerFailure = isBreakerFailure; exports.DEFAULT_COOLDOWN_MAX_MS = DEFAULT_COOLDOWN_MAX_MS; exports.DEFAULT_COOLDOWN_DEFAULT_MS = DEFAULT_COOLDOWN_DEFAULT_MS; exports.DEFAULT_COOLDOWN_MAX_ENTRIES = DEFAULT_COOLDOWN_MAX_ENTRIES; exports.InMemoryCooldownStore = InMemoryCooldownStore; exports.defaultCooldownStore = defaultCooldownStore; exports.resetDefaultCooldownStore = resetDefaultCooldownStore; exports.buildTenantKey = buildTenantKey; exports.cooldownDurationMs = cooldownDurationMs; exports.resolveCredentials = resolveCredentials; exports.buildReadCache = buildReadCache; exports.resolveConfig = resolveConfig; exports.IDEMPOTENT_METHODS = IDEMPOTENT_METHODS; exports.isRecord = isRecord2; exports.assertRecord = assertRecord; exports.deepMergeParams = deepMergeParams; exports.isIdentifierCandidate = isIdentifierCandidate; exports.parseIdentifier = parseIdentifier; exports.flattenUdfs = flattenUdfs; exports.newCorrelationId = newCorrelationId; exports.redactAuditBody = redactAuditBody; exports.camelKey = camelKey; exports.FILTER_OPERATORS = FILTER_OPERATORS; exports.GROUPING_OPERATORS = GROUPING_OPERATORS; exports.MAX_OR_CONDITIONS = MAX_OR_CONDITIONS; exports.MAX_UDF_PER_QUERY = MAX_UDF_PER_QUERY; exports.MAX_QUERY_LENGTH = MAX_QUERY_LENGTH; exports.MAX_GET_LENGTH = MAX_GET_LENGTH; exports.MAX_FIELD_LENGTH = MAX_FIELD_LENGTH; exports.isFilterOperator = isFilterOperator; exports.serializeFilter = serializeFilter; exports.validateFilter = validateFilter; exports.buildFilter = buildFilter; exports.normalizedConditions = normalizedConditions; exports.normalizeInValues = normalizeInValues; exports.assertNoRelationLeaf = assertNoRelationLeaf; exports.buildUrl = buildUrl; exports.cursorToPath = cursorToPath; exports.buildQueryBody = buildQueryBody; exports.buildQueryRequest = buildQueryRequest; exports.runWithSignal = runWithSignal; exports.RELATIONSHIP_ZONE = RELATIONSHIP_ZONE; exports.RELATIONSHIP_MAP = RELATIONSHIP_MAP; exports.DELETE_BOUNDARY_NOTES = DELETE_BOUNDARY_NOTES; exports.MARKER_FIELDS = MARKER_FIELDS; exports.BLIND_SURFACE_INVENTORY = BLIND_SURFACE_INVENTORY; exports.REACHABILITY_PROBE_DEFAULTS = REACHABILITY_PROBE_DEFAULTS; exports.CREATE_GUIDANCE = CREATE_GUIDANCE; exports.unwrapItems = unwrapItems; exports.unwrapItem = unwrapItem; exports.unwrapQueryCount = unwrapQueryCount; exports.unwrapOperation = unwrapOperation; exports.passthrough = passthrough; exports.HttpClient = HttpClient; exports.BOUNDED_QUERY_MAX_LIMIT = BOUNDED_QUERY_MAX_LIMIT; exports.buildDryRunResult = buildDryRunResult; exports.mergePartialBody = mergePartialBody; exports.effectiveRequiredFields = effectiveRequiredFields; exports.MAX_PAGES = MAX_PAGES; exports.clampPageSize = clampPageSize; exports.totalPagesFor = totalPagesFor; exports.paginate = paginate; exports.paginateItems = paginateItems; exports.collectAll = collectAll; exports.toArray = toArray; exports.FIELD_PRESETS = FIELD_PRESETS; exports.FIELD_PRESET_NAMES = FIELD_PRESET_NAMES; exports.resolveFieldsPreset = resolveFieldsPreset; exports.MODEL_DATE_FIELDS = MODEL_DATE_FIELDS; exports.EXPAND_RESOURCE_NAMES_MAX_IDS = EXPAND_RESOURCE_NAMES_MAX_IDS; exports.expandResourceNames = expandResourceNames; exports.ENTITY_TYPE_TO_RESOURCE = ENTITY_TYPE_TO_RESOURCE; exports.resourceForEntityType = resourceForEntityType; exports.isEnumerableResource = isEnumerableResource; exports.WORKFLOW_RESOURCES = WORKFLOW_RESOURCES; exports.MAX_FIELD_CATALOG_WIRE = MAX_FIELD_CATALOG_WIRE; exports.FIELD_CATALOG_HONESTY_NOTE = FIELD_CATALOG_HONESTY_NOTE; exports.MIN_FIELD_CATALOG_MAX_BYTES = MIN_FIELD_CATALOG_MAX_BYTES; exports.fieldCatalog = fieldCatalog; exports.PICKLIST_VALUE_NOT_SERVED_NOTE = PICKLIST_VALUE_NOT_SERVED_NOTE; exports.PICKLIST_CATALOG_UNAVAILABLE_NOTE = PICKLIST_CATALOG_UNAVAILABLE_NOTE; exports.TICKET_LABEL_FIELDS = TICKET_LABEL_FIELDS; exports.createNamePlan = createNamePlan; exports.addNameSibling = addNameSibling; exports.addLabelSibling = addLabelSibling; exports.vendorId = vendorId; exports.resolveLineOfBusinessChain = resolveLineOfBusinessChain; exports.resolveCompositeNames = resolveCompositeNames; exports.readNamesOpt = readNamesOpt; exports.labelRows = labelRows; exports.BaseResource = BaseResource; exports.BillingCodesResource = BillingCodesResource; exports.BillingItemsResource = BillingItemsResource; exports.isDateYMD = isDateYMD; exports.monthsInWindow = monthsInWindow; exports.dayAfter = dayAfter; exports.num = num; exports.collectFilterFieldNames = collectFilterFieldNames; exports.validateQueryFieldNames = validateQueryFieldNames; exports.findUnknownFieldNames = findUnknownFieldNames; exports.resolveTicketStatusSemantics = resolveTicketStatusSemantics; exports.openStatusFilter = openStatusFilter; exports.isClosedStatus = isClosedStatus; exports.CompaniesResource = CompaniesResource; exports.PROFITABILITY_MAX_WINDOW_MONTHS = PROFITABILITY_MAX_WINDOW_MONTHS; exports.SERVICE_LINE_FKS = SERVICE_LINE_FKS; exports.CHARGE_LINE_FKS = CHARGE_LINE_FKS; exports.billingLineType = billingLineType; exports.internalAmount = internalAmount; exports.FETCH_MANY_MAX_ITEMS = FETCH_MANY_MAX_ITEMS; exports.validateFetchManyItems = validateFetchManyItems; exports.fetchMany = fetchMany; exports.FETCH_BY_IDS_MAX_ITEMS = FETCH_BY_IDS_MAX_ITEMS; exports.FETCH_BY_IDS_CHUNK_SIZE = FETCH_BY_IDS_CHUNK_SIZE; exports.fetchByIds = fetchByIds; exports.readPicklists = readPicklists; exports.ContractsResource = ContractsResource; exports.InvoicesResource = InvoicesResource; exports.OrganizationalLevel1sResource = OrganizationalLevel1sResource; exports.OrganizationalLevel2sResource = OrganizationalLevel2sResource; exports.OrganizationalLevelAssociationsResource = OrganizationalLevelAssociationsResource; exports.ResourcesResource = ResourcesResource; exports.UI_LINK_ENTITIES = UI_LINK_ENTITIES; exports.buildUiLink = buildUiLink; exports.uiLink = uiLink; exports.refuse = refuse; exports.queryRows = queryRows; exports.runMove = runMove; exports.uiLinkFor = uiLinkFor; exports.TimeEntriesResource = TimeEntriesResource;
|