node-autotask 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/MCP_TOOL_CATALOG.json +31 -12
- package/MCP_TOOL_MANIFEST.md +18 -19
- package/MCP_TOOL_OVERRIDES.json +0 -12
- package/N8N_MCP_MANIFEST.json +44 -18
- package/N8N_MCP_MANIFEST.md +15 -14
- package/README.md +8 -6
- package/capabilities.json +1579 -1414
- package/dist/capabilities.cjs +2 -2
- package/dist/capabilities.js +1 -1
- package/dist/{chunk-3H3RJ4LA.cjs → chunk-3LAZZT7V.cjs} +143 -143
- package/dist/{chunk-PCLL536B.cjs → chunk-4QN43TRP.cjs} +75 -50
- package/dist/{chunk-6UA544OR.js → chunk-5DS6F6GF.js} +299 -113
- package/dist/{chunk-RQZUV74N.js → chunk-7WNE5MPG.js} +2 -2
- package/dist/{chunk-INSFDXHP.js → chunk-MFDQHFGJ.js} +28 -3
- package/dist/{chunk-DQLEVKZS.cjs → chunk-OO67MRHN.cjs} +814 -628
- package/dist/{chunk-QXUN2VCJ.cjs → chunk-SP2SJJZX.cjs} +1578 -1413
- package/dist/{chunk-EPOHRNSX.js → chunk-VKE56TTN.js} +1578 -1413
- package/dist/{index-Uqj987EE.d.ts → index-BaeMHZPk.d.ts} +149 -12
- package/dist/{index--5jrRl4u.d.cts → index-Cq0VsfSz.d.cts} +149 -12
- package/dist/index.cjs +22 -22
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -4
- package/dist/operations/index.cjs +120 -133
- package/dist/operations/index.d.cts +2 -2
- package/dist/operations/index.d.ts +2 -2
- package/dist/operations/index.js +3 -16
- package/dist/pool.cjs +9 -9
- package/dist/pool.d.cts +1 -1
- package/dist/pool.d.ts +1 -1
- package/dist/pool.js +4 -4
- package/dist/resources/index.cjs +4 -4
- package/dist/resources/index.d.cts +1 -1
- package/dist/resources/index.d.ts +1 -1
- package/dist/resources/index.js +3 -3
- package/docs/API.md +62 -37
- package/package.json +2 -1
|
@@ -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(); } } 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; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8;
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkSP2SJJZXcjs = require('./chunk-SP2SJJZX.cjs');
|
|
4
4
|
|
|
5
5
|
// src/auth.ts
|
|
6
6
|
var AUTH_HEADERS = {
|
|
@@ -10863,8 +10863,8 @@ var EMPTY_REASON_STAMPS = {
|
|
|
10863
10863
|
var POINTER_NOTES = {
|
|
10864
10864
|
"ticket_history.query": `W1 (ww29 (australia-nz) live 2026-10-04; vendor contract change live-verified 2026-10-06): the vendor requires ticket_history.query to be supplied with exactly ONE ticketID-equals filter \u2014 an unfiltered call 500s by contract (10-06 text: "When querying the TicketHistory entity you are required to supply one and only one ticketID equals filter"). WITH the filter the query WORKS (live 2026-10-06: rows returned, hasMore true \u2014 a single {op:'eq', field:'ticketID', value:<id>} condition; the filter vocabulary is eq/noteq/gt/gte/lt/lte/beginsWith/endsWith/contains/exist/notExist/in/notIn/and/or). tickets.timeline / tickets.fullContext remain the convenient composites; raw history rows come from the filtered query.`,
|
|
10865
10865
|
"time_entries.create": `W-A3 (ww29 (australia-nz) live 2026-10-04; re-walled 2026-10-06; scope re-stamped 2026-10-21): for a time_entries.create whose (resourceID, roleID) pair selects the API-only user's own resource, the vendor refused with "API-only user cannot be selected for this field" (10-04 text: "The specified AssignedResourceID and AssignedRoleID combination is not currently defined"). This is a (resource, role) pair wall, NOT a blanket refusal of time-entry writes: live time_entries.create calls succeeded on 2026-10-21 (pair not recorded; two entries created, read back, 1.0 h total). The authorised pair set has NOT been re-adjudicated by a live probe; if a create fails with the pair-validation text, check the resource's role authorisation (whoAmI / the resource record) and try another pair. createForResource's 10-06 wall is likewise unconfirmed for other pairs. Working reads remain postedWithin / the window helpers (W-D3 pointer note).`,
|
|
10866
|
-
"time_entries.getPosted":
|
|
10867
|
-
"time_entries.getUnposted":
|
|
10866
|
+
"time_entries.getPosted": `W-D3 (ww29 (australia-nz) live 2026-10-04, re-verified live 2026-10-27): this zone's TimeEntry entity exposes NO posted-state field \u2014 reads carry no postedDate/postedOnTime and a postedDate exist/notExist filter fails with SERVER_ERROR "Unable to find postedDate in the TimeEntry Entity". time_entries.getPosted therefore no longer sends any postedDate condition: posted state is derived from billing_items.timeEntryID (an entry is posted when a billing item references it, whether or not billingApprovalDateTime is set \u2014 ww29 never populates it). If a call still fails, the fault is NOT the old postedDate wall: it is a billing_items join/read fault (typed error \u2014 429 RATE_LIMITED included \u2014 propagates, no partial result). The dateWorked window reads time_entries.postedWithin / time_entries.dateWorkedWindow use the same derivation.`,
|
|
10867
|
+
"time_entries.getUnposted": `W-D3 (ww29 (australia-nz) live 2026-10-04, re-verified live 2026-10-27): this zone's TimeEntry entity exposes NO posted-state field \u2014 reads carry no postedDate/postedOnTime and a postedDate exist/notExist filter fails with SERVER_ERROR "Unable to find postedDate in the TimeEntry Entity". time_entries.getUnposted therefore no longer sends any postedDate condition: unposted state is derived from billing_items.timeEntryID (an entry is posted when a billing item references it, whether or not billingApprovalDateTime is set \u2014 ww29 never populates it). If a call still fails, the fault is NOT the old postedDate wall: it is a billing_items join/read fault (typed error \u2014 429 RATE_LIMITED included \u2014 propagates, no partial result). The dateWorked window reads time_entries.postedWithin / time_entries.dateWorkedWindow use the same derivation.`,
|
|
10868
10868
|
"authenticate.get": "W2: authenticate.get is DESIGNATOR-ONLY \u2014 it returns the designator identity, not a tenant data surface; a miss/empty here is not a data-empty signal (no emptyReason is attached by design \u2014 a false reason would be worse than none)"
|
|
10869
10869
|
};
|
|
10870
10870
|
var BLIND_SURFACE_INVENTORY = {
|
|
@@ -16791,6 +16791,20 @@ var HttpClient = class {
|
|
|
16791
16791
|
}
|
|
16792
16792
|
};
|
|
16793
16793
|
|
|
16794
|
+
// src/operations/requiredFields.ts
|
|
16795
|
+
function effectiveRequiredFields(record, zoneFacts) {
|
|
16796
|
+
const prefix = _optionalChain([zoneFacts, 'optionalAccess', _126 => _126.createGuidance, 'optionalAccess', _127 => _127.liveProvenPrefix]);
|
|
16797
|
+
if (Array.isArray(prefix) && prefix.length > 0) {
|
|
16798
|
+
return { fields: [...prefix], from: "live-proven" };
|
|
16799
|
+
}
|
|
16800
|
+
const zoneSet = _optionalChain([zoneFacts, 'optionalAccess', _128 => _128.createRequiredSet]);
|
|
16801
|
+
if (Array.isArray(zoneSet) && zoneSet.length > 0) {
|
|
16802
|
+
return { fields: [...zoneSet], from: "zone" };
|
|
16803
|
+
}
|
|
16804
|
+
const spec = _optionalChain([record, 'optionalAccess', _129 => _129.requiredFields]);
|
|
16805
|
+
return { fields: Array.isArray(spec) ? [...spec] : [], from: "spec" };
|
|
16806
|
+
}
|
|
16807
|
+
|
|
16794
16808
|
// src/pagination.ts
|
|
16795
16809
|
var MAX_PAGES = 1e3;
|
|
16796
16810
|
function clampPageSize(pageSize) {
|
|
@@ -16977,7 +16991,7 @@ async function expandResourceNames(client, ids, opts = {}) {
|
|
|
16977
16991
|
continue;
|
|
16978
16992
|
}
|
|
16979
16993
|
}
|
|
16980
|
-
const epoch = _nullishCoalesce(_optionalChain([cache, 'optionalAccess',
|
|
16994
|
+
const epoch = _nullishCoalesce(_optionalChain([cache, 'optionalAccess', _130 => _130.epoch]), () => ( 0));
|
|
16981
16995
|
const work = (async () => {
|
|
16982
16996
|
try {
|
|
16983
16997
|
const record = await holder.get(id, { fresh });
|
|
@@ -17031,7 +17045,7 @@ function buildEntityTypeMap() {
|
|
|
17031
17045
|
}
|
|
17032
17046
|
var ENTITY_TYPE_TO_RESOURCE = buildEntityTypeMap();
|
|
17033
17047
|
var ENUMERABLE_RESOURCES = new Set(
|
|
17034
|
-
|
|
17048
|
+
_chunkSP2SJJZXcjs.CAPABILITIES.filter((rec) => rec.resource !== "operations" && (rec.operation === "query" || rec.operation === "get")).map(
|
|
17035
17049
|
(rec) => rec.resource
|
|
17036
17050
|
)
|
|
17037
17051
|
);
|
|
@@ -17108,7 +17122,7 @@ function capabilitySets() {
|
|
|
17108
17122
|
const fieldOps = /* @__PURE__ */ new Map();
|
|
17109
17123
|
const udfOps = /* @__PURE__ */ new Map();
|
|
17110
17124
|
const resources = /* @__PURE__ */ new Set();
|
|
17111
|
-
for (const rec of
|
|
17125
|
+
for (const rec of _chunkSP2SJJZXcjs.CAPABILITIES) {
|
|
17112
17126
|
if (rec.resource === "operations") continue;
|
|
17113
17127
|
resources.add(rec.resource);
|
|
17114
17128
|
if (rec.operation === "getFieldInfo") fieldOps.set(rec.resource, rec);
|
|
@@ -17120,12 +17134,12 @@ var derivedIndex = null;
|
|
|
17120
17134
|
function derivedFieldsFor(resource) {
|
|
17121
17135
|
if (derivedIndex === null) {
|
|
17122
17136
|
derivedIndex = /* @__PURE__ */ new Map();
|
|
17123
|
-
for (const rec of
|
|
17124
|
-
const declared = _optionalChain([rec, 'access',
|
|
17137
|
+
for (const rec of _chunkSP2SJJZXcjs.CAPABILITIES) {
|
|
17138
|
+
const declared = _optionalChain([rec, 'access', _131 => _131.metadata, 'optionalAccess', _132 => _132.derivedFields]);
|
|
17125
17139
|
if (!Array.isArray(declared) || derivedIndex.has(rec.resource)) continue;
|
|
17126
17140
|
const rows = [];
|
|
17127
17141
|
for (const row of declared) {
|
|
17128
|
-
if (typeof _optionalChain([row, 'optionalAccess',
|
|
17142
|
+
if (typeof _optionalChain([row, 'optionalAccess', _133 => _133.field]) !== "string" || typeof row.rule !== "string") continue;
|
|
17129
17143
|
rows.push({
|
|
17130
17144
|
field: row.field,
|
|
17131
17145
|
rule: row.rule,
|
|
@@ -17163,7 +17177,7 @@ function validateCatalogOptsShape(opts) {
|
|
|
17163
17177
|
}
|
|
17164
17178
|
}
|
|
17165
17179
|
function resolveInclude(opts) {
|
|
17166
|
-
const includeRaw = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
17180
|
+
const includeRaw = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _134 => _134.include]), () => ( ["fields"]));
|
|
17167
17181
|
if (!Array.isArray(includeRaw) || includeRaw.length === 0) {
|
|
17168
17182
|
throw new AutotaskConfigError("fieldCatalog: opts.include must be a non-empty array of (info|fields|udf)");
|
|
17169
17183
|
}
|
|
@@ -17180,7 +17194,7 @@ function resolveInclude(opts) {
|
|
|
17180
17194
|
return include;
|
|
17181
17195
|
}
|
|
17182
17196
|
function resolveTargets(opts, fieldOps, allResources) {
|
|
17183
|
-
const resourcesRaw = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
17197
|
+
const resourcesRaw = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _135 => _135.resources]), () => ( WORKFLOW_RESOURCES));
|
|
17184
17198
|
if (!Array.isArray(resourcesRaw) || resourcesRaw.length === 0) {
|
|
17185
17199
|
throw new AutotaskConfigError("fieldCatalog: opts.resources must be a non-empty array of plan resource keys");
|
|
17186
17200
|
}
|
|
@@ -17214,7 +17228,7 @@ function resolveTargets(opts, fieldOps, allResources) {
|
|
|
17214
17228
|
return targets;
|
|
17215
17229
|
}
|
|
17216
17230
|
function resolveFieldsFilter(opts) {
|
|
17217
|
-
const fieldsRaw = _optionalChain([opts, 'optionalAccess',
|
|
17231
|
+
const fieldsRaw = _optionalChain([opts, 'optionalAccess', _136 => _136.fields]);
|
|
17218
17232
|
if (fieldsRaw === void 0) return void 0;
|
|
17219
17233
|
if (!Array.isArray(fieldsRaw) || fieldsRaw.length === 0) {
|
|
17220
17234
|
throw new AutotaskConfigError("fieldCatalog: opts.fields must be a non-empty array of vendor field name strings");
|
|
@@ -17237,7 +17251,7 @@ function resolveLabels(opts) {
|
|
|
17237
17251
|
`fieldCatalog: opts.labels must be a boolean (got ${typeof opts.labels})`
|
|
17238
17252
|
);
|
|
17239
17253
|
}
|
|
17240
|
-
return _optionalChain([opts, 'optionalAccess',
|
|
17254
|
+
return _optionalChain([opts, 'optionalAccess', _137 => _137.labels]) === true;
|
|
17241
17255
|
}
|
|
17242
17256
|
function assertWithinWireCap(targetCount, kindCount) {
|
|
17243
17257
|
const cost = targetCount * kindCount;
|
|
@@ -17250,9 +17264,9 @@ function assertWithinWireCap(targetCount, kindCount) {
|
|
|
17250
17264
|
}
|
|
17251
17265
|
function kindFetches(holder, resource) {
|
|
17252
17266
|
return {
|
|
17253
|
-
info: () => _nullishCoalesce(_optionalChain([holder, 'optionalAccess',
|
|
17254
|
-
fields: () => _nullishCoalesce(_optionalChain([holder, 'optionalAccess',
|
|
17255
|
-
udf: () => _nullishCoalesce(_optionalChain([holder, 'optionalAccess',
|
|
17267
|
+
info: () => _nullishCoalesce(_optionalChain([holder, 'optionalAccess', _138 => _138.getEntityInfo, 'optionalCall', _139 => _139()]), () => ( Promise.reject(new AutotaskError(`fieldCatalog: the client exposes no getEntityInfo read for "${resource}"`, { code: "INVALID_RESPONSE", category: "server" })))),
|
|
17268
|
+
fields: () => _nullishCoalesce(_optionalChain([holder, 'optionalAccess', _140 => _140.getFieldInfo, 'optionalCall', _141 => _141()]), () => ( Promise.reject(new AutotaskError(`fieldCatalog: the client exposes no getFieldInfo read for "${resource}"`, { code: "INVALID_RESPONSE", category: "server" })))),
|
|
17269
|
+
udf: () => _nullishCoalesce(_optionalChain([holder, 'optionalAccess', _142 => _142.getUdfInfo, 'optionalCall', _143 => _143()]), () => ( Promise.reject(new AutotaskError(`fieldCatalog: the client exposes no getUdfInfo read for "${resource}"`, { code: "INVALID_RESPONSE", category: "server" }))))
|
|
17256
17270
|
};
|
|
17257
17271
|
}
|
|
17258
17272
|
async function sweepResource(ctx, resource, tally) {
|
|
@@ -17278,7 +17292,7 @@ async function sweepResource(ctx, resource, tally) {
|
|
|
17278
17292
|
error: null
|
|
17279
17293
|
};
|
|
17280
17294
|
const fetches = kindFetches(holder, resource);
|
|
17281
|
-
if (fresh) _optionalChain([cache, 'optionalAccess',
|
|
17295
|
+
if (fresh) _optionalChain([cache, 'optionalAccess', _144 => _144.invalidate, 'call', _145 => _145(resource)]);
|
|
17282
17296
|
const projectList = (kind, list) => {
|
|
17283
17297
|
const projected = list.map((f) => projectFieldRow(f, labels, kind === "udf"));
|
|
17284
17298
|
if (kind === "fields") applyFieldsFilter(projected, fieldsFilter, row);
|
|
@@ -17347,7 +17361,7 @@ async function fieldCatalog(client, opts) {
|
|
|
17347
17361
|
const zone = _nullishCoalesce(client.config.zone, () => ( "unknown"));
|
|
17348
17362
|
const rows = [];
|
|
17349
17363
|
const tally = { wireUsed: 0, anyPicklistValues: false };
|
|
17350
|
-
const ctx = { client, include, fieldsFilter, labels, fresh: _optionalChain([opts, 'optionalAccess',
|
|
17364
|
+
const ctx = { client, include, fieldsFilter, labels, fresh: _optionalChain([opts, 'optionalAccess', _146 => _146.fresh]) === true, fieldOps, udfOps };
|
|
17351
17365
|
for (const resource of targets) {
|
|
17352
17366
|
const row = await sweepResource(ctx, resource, tally);
|
|
17353
17367
|
if (row !== void 0) rows.push(row);
|
|
@@ -17357,7 +17371,7 @@ async function fieldCatalog(client, opts) {
|
|
|
17357
17371
|
label: zone,
|
|
17358
17372
|
cached: cache !== void 0,
|
|
17359
17373
|
labels,
|
|
17360
|
-
ttlMs: _nullishCoalesce(_optionalChain([cache, 'optionalAccess',
|
|
17374
|
+
ttlMs: _nullishCoalesce(_optionalChain([cache, 'optionalAccess', _147 => _147.ttlMs]), () => ( null)),
|
|
17361
17375
|
fetchedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
17362
17376
|
rows,
|
|
17363
17377
|
wireUsed: tally.wireUsed,
|
|
@@ -17631,7 +17645,7 @@ async function resolveCompositeNames(http, plan, opts = {}) {
|
|
|
17631
17645
|
} else {
|
|
17632
17646
|
for (const f of plan.labelFields) {
|
|
17633
17647
|
const frow = row.fields.find((x) => x.name === f);
|
|
17634
|
-
picklists[f] = _optionalChain([frow, 'optionalAccess',
|
|
17648
|
+
picklists[f] = _optionalChain([frow, 'optionalAccess', _148 => _148.picklistValues]);
|
|
17635
17649
|
}
|
|
17636
17650
|
}
|
|
17637
17651
|
} catch (err) {
|
|
@@ -17665,8 +17679,8 @@ async function resolveCompositeNames(http, plan, opts = {}) {
|
|
|
17665
17679
|
return {
|
|
17666
17680
|
section,
|
|
17667
17681
|
lineOfBusiness,
|
|
17668
|
-
resourceName: (id) => _nullishCoalesce(_optionalChain([section, 'access',
|
|
17669
|
-
recordName: (table, id) => _nullishCoalesce(_optionalChain([section, 'access',
|
|
17682
|
+
resourceName: (id) => _nullishCoalesce(_optionalChain([section, 'access', _149 => _149.rows, 'access', _150 => _150[`resource:${id}`], 'optionalAccess', _151 => _151.name]), () => ( null)),
|
|
17683
|
+
recordName: (table, id) => _nullishCoalesce(_optionalChain([section, 'access', _152 => _152.rows, 'access', _153 => _153[`${table}:${id}`], 'optionalAccess', _154 => _154.name]), () => ( null)),
|
|
17670
17684
|
labelFor: (field, value) => {
|
|
17671
17685
|
if (value === null || value === void 0) return null;
|
|
17672
17686
|
const values = picklists[field];
|
|
@@ -17948,8 +17962,8 @@ function validateFetchManyItems(items, cap, opName = "fetchMany", capRef = `FETC
|
|
|
17948
17962
|
problems.push(`${at}.fields: must be an array of exact vendor field names (discover them via operations.fieldCatalog)`);
|
|
17949
17963
|
continue;
|
|
17950
17964
|
}
|
|
17951
|
-
if (_optionalChain([validation, 'optionalAccess',
|
|
17952
|
-
const authoritative = _nullishCoalesce(_optionalChain([validation, 'optionalAccess',
|
|
17965
|
+
if (_optionalChain([validation, 'optionalAccess', _155 => _155.fieldCheck]) !== false) {
|
|
17966
|
+
const authoritative = _nullishCoalesce(_optionalChain([validation, 'optionalAccess', _156 => _156.fieldSetsByResource, 'optionalAccess', _157 => _157.get, 'call', _158 => _158(resourceKey)]), () => ( fields));
|
|
17953
17967
|
for (const f of item.fields) {
|
|
17954
17968
|
if (!authoritative.includes(f)) {
|
|
17955
17969
|
problems.push(
|
|
@@ -18053,7 +18067,7 @@ function project2(value, fields) {
|
|
|
18053
18067
|
return out;
|
|
18054
18068
|
}
|
|
18055
18069
|
function resourcePathOf(key, holder) {
|
|
18056
|
-
const path = _optionalChain([holder, 'optionalAccess',
|
|
18070
|
+
const path = _optionalChain([holder, 'optionalAccess', _159 => _159.resourcePath]);
|
|
18057
18071
|
if (typeof path !== "string" || path === "") {
|
|
18058
18072
|
throw new AutotaskConfigError(`fetchByIds: the client exposes no ${key} resource path (registry drift)`, {
|
|
18059
18073
|
suggestedAction: "Rebuild the client from the SDK build that ships this registry (the resource set is pinned by the plan)."
|
|
@@ -18189,7 +18203,7 @@ function uiHostFromBase(baseUrl) {
|
|
|
18189
18203
|
} catch (e18) {
|
|
18190
18204
|
return void 0;
|
|
18191
18205
|
}
|
|
18192
|
-
const n = _optionalChain([REST_HOST, 'access',
|
|
18206
|
+
const n = _optionalChain([REST_HOST, 'access', _160 => _160.exec, 'call', _161 => _161(hostname), 'optionalAccess', _162 => _162[1]]);
|
|
18193
18207
|
return n === void 0 ? void 0 : `ww${n}.autotask.net`;
|
|
18194
18208
|
}
|
|
18195
18209
|
function buildUiLink(input) {
|
|
@@ -18295,7 +18309,7 @@ function blindEmptyReason(stamp) {
|
|
|
18295
18309
|
};
|
|
18296
18310
|
}
|
|
18297
18311
|
function attachUpdateTargetMissReason(err, key) {
|
|
18298
|
-
const pinned = _optionalChain([EMPTY_REASON_STAMPS, 'access',
|
|
18312
|
+
const pinned = _optionalChain([EMPTY_REASON_STAMPS, 'access', _163 => _163[key], 'optionalAccess', _164 => _164.update]);
|
|
18299
18313
|
if (pinned === void 0) return;
|
|
18300
18314
|
err.details = { ..._nullishCoalesce(err.details, () => ( {})), emptyReason: pinned };
|
|
18301
18315
|
}
|
|
@@ -18480,7 +18494,7 @@ var QueryBase = class {
|
|
|
18480
18494
|
}
|
|
18481
18495
|
/** @internal */
|
|
18482
18496
|
walkPageSize(params) {
|
|
18483
|
-
return clampPageSize(_nullishCoalesce(_optionalChain([params, 'optionalAccess',
|
|
18497
|
+
return clampPageSize(_nullishCoalesce(_optionalChain([params, 'optionalAccess', _165 => _165.maxRecords]), () => ( this.defaultPageSize)));
|
|
18484
18498
|
}
|
|
18485
18499
|
/** Stream items across pages (the resource `query` surface). */
|
|
18486
18500
|
queryItems(params) {
|
|
@@ -18492,7 +18506,7 @@ var QueryBase = class {
|
|
|
18492
18506
|
}
|
|
18493
18507
|
/** Collect every item across all pages (the resource `queryAll` surface; 1000-page guarded). */
|
|
18494
18508
|
async queryAllItems(params) {
|
|
18495
|
-
return collectAll(this.pageFetcher(params), { pageSize: this.walkPageSize(params), maxRecords: _optionalChain([params, 'optionalAccess',
|
|
18509
|
+
return collectAll(this.pageFetcher(params), { pageSize: this.walkPageSize(params), maxRecords: _optionalChain([params, 'optionalAccess', _166 => _166.maxTotalRecords]) });
|
|
18496
18510
|
}
|
|
18497
18511
|
/**
|
|
18498
18512
|
* `queryBounded` — server-side pagination (the MCP query surface): ONE call
|
|
@@ -18529,19 +18543,19 @@ var QueryBase = class {
|
|
|
18529
18543
|
"queryBounded: params must be an object { filter?, limit?, latest?, includeFields? } \u2014 a bare conditions array is not accepted (wrap it: { filter: [...] })"
|
|
18530
18544
|
);
|
|
18531
18545
|
}
|
|
18532
|
-
const limit = _nullishCoalesce(_optionalChain([params, 'optionalAccess',
|
|
18546
|
+
const limit = _nullishCoalesce(_optionalChain([params, 'optionalAccess', _167 => _167.limit]), () => ( BOUNDED_QUERY_DEFAULT_LIMIT));
|
|
18533
18547
|
if (!Number.isInteger(limit) || limit < 1 || limit > BOUNDED_QUERY_MAX_LIMIT) {
|
|
18534
18548
|
throw new AutotaskConfigError(
|
|
18535
18549
|
`queryBounded: limit must be an integer 1..${BOUNDED_QUERY_MAX_LIMIT} (got ${String(limit)}) \u2014 it is the TOTAL record cap, not a page size`
|
|
18536
18550
|
);
|
|
18537
18551
|
}
|
|
18538
|
-
const noteChars = _optionalChain([params, 'optionalAccess',
|
|
18552
|
+
const noteChars = _optionalChain([params, 'optionalAccess', _168 => _168.noteChars]);
|
|
18539
18553
|
if (noteChars !== void 0 && (!Number.isInteger(noteChars) || noteChars < 1)) {
|
|
18540
18554
|
throw new AutotaskConfigError(
|
|
18541
18555
|
`queryBounded: noteChars must be an integer >= 1 (got ${String(noteChars)}) \u2014 it is the per-field char cap on the untrusted-class free-text fields (absent = the raw, untruncated result)`
|
|
18542
18556
|
);
|
|
18543
18557
|
}
|
|
18544
|
-
const walkParams = _optionalChain([params, 'optionalAccess',
|
|
18558
|
+
const walkParams = _optionalChain([params, 'optionalAccess', _169 => _169.fieldsPreset]) !== void 0 ? { ...params, includeFields: resolveFieldsPreset(params.fieldsPreset, this.config.key, params.includeFields) } : _nullishCoalesce(params, () => ( {}));
|
|
18545
18559
|
const latest = walkParams.latest;
|
|
18546
18560
|
if (latest !== void 0) {
|
|
18547
18561
|
if (!Number.isInteger(latest) || latest < 1 || latest > BOUNDED_QUERY_MAX_LIMIT) {
|
|
@@ -18549,7 +18563,7 @@ var QueryBase = class {
|
|
|
18549
18563
|
`queryBounded: latest must be an integer 1..${BOUNDED_QUERY_MAX_LIMIT} (got ${String(latest)}) \u2014 it is the count of the highest-id rows to return`
|
|
18550
18564
|
);
|
|
18551
18565
|
}
|
|
18552
|
-
if (_optionalChain([params, 'optionalAccess',
|
|
18566
|
+
if (_optionalChain([params, 'optionalAccess', _170 => _170.limit]) !== void 0 && limit < latest) {
|
|
18553
18567
|
throw new AutotaskConfigError(
|
|
18554
18568
|
`queryBounded: limit (${String(limit)}) must be >= latest (${String(latest)}) \u2014 latest governs the returned count and limit is the walk window`
|
|
18555
18569
|
);
|
|
@@ -18635,8 +18649,8 @@ var QueryBase = class {
|
|
|
18635
18649
|
* @internal */
|
|
18636
18650
|
stampEmptyQueryResult(result, params) {
|
|
18637
18651
|
if (result.items.length !== 0) return;
|
|
18638
|
-
result.blindSurface = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access',
|
|
18639
|
-
const pinnedReason = normalizedConditions(_optionalChain([params, 'optionalAccess',
|
|
18652
|
+
result.blindSurface = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access', _171 => _171[this.config.key], 'optionalAccess', _172 => _172.query]), _optionalChain([params, 'optionalAccess', _173 => _173.filter]));
|
|
18653
|
+
const pinnedReason = normalizedConditions(_optionalChain([params, 'optionalAccess', _174 => _174.filter])) === void 0 ? _optionalChain([EMPTY_REASON_STAMPS, 'access', _175 => _175[this.config.key], 'optionalAccess', _176 => _176.query]) : void 0;
|
|
18640
18654
|
if (result.blindSurface !== void 0 || pinnedReason !== void 0) {
|
|
18641
18655
|
result.emptyReason = result.blindSurface !== void 0 ? blindEmptyReason(result.blindSurface) : pinnedReason;
|
|
18642
18656
|
}
|
|
@@ -18865,7 +18879,7 @@ var QueryBase = class {
|
|
|
18865
18879
|
if (result.items.length === 0) {
|
|
18866
18880
|
this.stampEmptyQueryResult(result, params);
|
|
18867
18881
|
} else {
|
|
18868
|
-
result.blindSurface = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access',
|
|
18882
|
+
result.blindSurface = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access', _177 => _177[this.config.key], 'optionalAccess', _178 => _178.query]), params.filter);
|
|
18869
18883
|
}
|
|
18870
18884
|
return result;
|
|
18871
18885
|
}
|
|
@@ -18906,7 +18920,7 @@ var QueryBase = class {
|
|
|
18906
18920
|
* or, on a plan-pinned blind surface, the `{ count: 0, blindSurface }`
|
|
18907
18921
|
* typed sentinel (S12-C T10; see `BlindCountResult`). */
|
|
18908
18922
|
async countGlobal(params) {
|
|
18909
|
-
const conditions = normalizedConditions(_optionalChain([params, 'optionalAccess',
|
|
18923
|
+
const conditions = normalizedConditions(_optionalChain([params, 'optionalAccess', _179 => _179.filter]));
|
|
18910
18924
|
const body = {};
|
|
18911
18925
|
body.filter = conditions === void 0 ? [] : buildFilter(conditions).filter;
|
|
18912
18926
|
const res = await this.http.request({
|
|
@@ -18917,9 +18931,9 @@ var QueryBase = class {
|
|
|
18917
18931
|
idempotent: true
|
|
18918
18932
|
});
|
|
18919
18933
|
const count = unwrapQueryCount(res, `${this.config.key}.count`);
|
|
18920
|
-
const stamp = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access',
|
|
18934
|
+
const stamp = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access', _180 => _180[this.config.key], 'optionalAccess', _181 => _181.count]), _optionalChain([params, 'optionalAccess', _182 => _182.filter]));
|
|
18921
18935
|
if (count === 0) {
|
|
18922
|
-
const pinnedReason = conditions === void 0 ? _optionalChain([EMPTY_REASON_STAMPS, 'access',
|
|
18936
|
+
const pinnedReason = conditions === void 0 ? _optionalChain([EMPTY_REASON_STAMPS, 'access', _183 => _183[this.config.key], 'optionalAccess', _184 => _184.count]) : void 0;
|
|
18923
18937
|
if (stamp !== void 0 || pinnedReason !== void 0) {
|
|
18924
18938
|
return {
|
|
18925
18939
|
count,
|
|
@@ -18955,9 +18969,9 @@ var MetaBase = class extends QueryBase {
|
|
|
18955
18969
|
const hit = cache.get(path);
|
|
18956
18970
|
if (hit !== void 0) return hit;
|
|
18957
18971
|
}
|
|
18958
|
-
const epoch = _optionalChain([cache, 'optionalAccess',
|
|
18972
|
+
const epoch = _optionalChain([cache, 'optionalAccess', _185 => _185.epoch]);
|
|
18959
18973
|
const res = await this.http.request({ method: "GET", path, operation });
|
|
18960
|
-
_optionalChain([cache, 'optionalAccess',
|
|
18974
|
+
_optionalChain([cache, 'optionalAccess', _186 => _186.set, 'call', _187 => _187(path, res, resource, epoch)]);
|
|
18961
18975
|
return res;
|
|
18962
18976
|
}
|
|
18963
18977
|
/**
|
|
@@ -18997,7 +19011,7 @@ var MetaBase = class extends QueryBase {
|
|
|
18997
19011
|
return value;
|
|
18998
19012
|
});
|
|
18999
19013
|
work.catch((err) => {
|
|
19000
|
-
if (err instanceof AutotaskError && (err.code === "INVALID_RESPONSE" || _optionalChain([err, 'access',
|
|
19014
|
+
if (err instanceof AutotaskError && (err.code === "INVALID_RESPONSE" || _optionalChain([err, 'access', _188 => _188.details, 'optionalAccess', _189 => _189.deterministic]) === true)) {
|
|
19001
19015
|
cache.invalidate(key);
|
|
19002
19016
|
}
|
|
19003
19017
|
});
|
|
@@ -19027,7 +19041,7 @@ var MetaBase = class extends QueryBase {
|
|
|
19027
19041
|
path: `${this.resourcePath}/${numeric}`,
|
|
19028
19042
|
operation: `${this.config.key}.get`,
|
|
19029
19043
|
skipResponseRedaction: true,
|
|
19030
|
-
maxRetries: _optionalChain([readOpts, 'optionalAccess',
|
|
19044
|
+
maxRetries: _optionalChain([readOpts, 'optionalAccess', _190 => _190.maxRetries])
|
|
19031
19045
|
});
|
|
19032
19046
|
return unwrapItem(res, numeric, `${this.config.key}.get`, this.entityName);
|
|
19033
19047
|
}
|
|
@@ -19046,7 +19060,7 @@ var MetaBase = class extends QueryBase {
|
|
|
19046
19060
|
path: this.scopedItemPath(parentId, numeric),
|
|
19047
19061
|
operation: `${this.config.key}.get`,
|
|
19048
19062
|
skipResponseRedaction: true,
|
|
19049
|
-
maxRetries: _optionalChain([readOpts, 'optionalAccess',
|
|
19063
|
+
maxRetries: _optionalChain([readOpts, 'optionalAccess', _191 => _191.maxRetries])
|
|
19050
19064
|
});
|
|
19051
19065
|
return unwrapItem(res, numeric, `${this.config.key}.get`, this.entityName);
|
|
19052
19066
|
}
|
|
@@ -19255,12 +19269,12 @@ var MetaBase = class extends QueryBase {
|
|
|
19255
19269
|
return null;
|
|
19256
19270
|
}
|
|
19257
19271
|
}
|
|
19258
|
-
const epoch = _optionalChain([cache, 'optionalAccess',
|
|
19272
|
+
const epoch = _optionalChain([cache, 'optionalAccess', _192 => _192.epoch]);
|
|
19259
19273
|
try {
|
|
19260
19274
|
return await this.fetchRecordRaw(entityPath, referenceId);
|
|
19261
19275
|
} catch (err) {
|
|
19262
19276
|
if (err instanceof NotFoundError) {
|
|
19263
|
-
_optionalChain([cache, 'optionalAccess',
|
|
19277
|
+
_optionalChain([cache, 'optionalAccess', _193 => _193.set, 'call', _194 => _194(absentKey, CONTEXT_ABSENT_MARKER, RESOURCE_KEY_BY_PATH[entityPath], epoch)]);
|
|
19264
19278
|
return null;
|
|
19265
19279
|
}
|
|
19266
19280
|
throw err;
|
|
@@ -19377,7 +19391,7 @@ var MetaBase = class extends QueryBase {
|
|
|
19377
19391
|
missDetail(operator, fields) {
|
|
19378
19392
|
const key = this.config.key;
|
|
19379
19393
|
const probe = fields.map((field) => ({ field, op: operator, value: "" }));
|
|
19380
|
-
const blind = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access',
|
|
19394
|
+
const blind = blindStampFor(_optionalChain([BLIND_SURFACE_STAMPS, 'access', _195 => _195[key], 'optionalAccess', _196 => _196.query]), probe);
|
|
19381
19395
|
const next = [];
|
|
19382
19396
|
if (blind !== void 0) {
|
|
19383
19397
|
next.push(`This surface is blind to records the API user does not own, so a miss is not proof of absence: ${blind.authority} returns the record when the id is known.`);
|
|
@@ -20005,6 +20019,16 @@ var MutationBase = class extends MetaBase {
|
|
|
20005
20019
|
warnings.push(`parent ${parentId} not found; the vendor would reject the create`);
|
|
20006
20020
|
}
|
|
20007
20021
|
}
|
|
20022
|
+
if (isRecord2(data)) {
|
|
20023
|
+
const eff = effectiveRequiredFields(void 0, _nullishCoalesce(_optionalChain([RELATIONSHIP_MAP, 'access', _197 => _197[this.config.key], 'optionalAccess', _198 => _198.zoneFacts]), () => ( null)));
|
|
20024
|
+
const missing = eff.fields.filter((f) => f !== this.config.parentField && data[f] === void 0);
|
|
20025
|
+
if (missing.length > 0) {
|
|
20026
|
+
warnings.push(`required field(s) not in the data: ${missing.join(", ")} (${eff.from}); the vendor would likely reject the create`);
|
|
20027
|
+
}
|
|
20028
|
+
}
|
|
20029
|
+
if (this.config.key === "companies") {
|
|
20030
|
+
warnings.push('the vendor auto-creates a "Primary Address" location for a new company (rename it with company_locations.update; it cannot be deleted via the API)');
|
|
20031
|
+
}
|
|
20008
20032
|
return buildDryRunResult({
|
|
20009
20033
|
operation: `${this.config.key}.create`,
|
|
20010
20034
|
method: "POST",
|
|
@@ -20036,7 +20060,7 @@ var MutationBase = class extends MetaBase {
|
|
|
20036
20060
|
current = parentId === void 0 ? await this.getGlobal(id, true) : this.config.attachmentGet ? await this.getScopedModel(parentId, id, true) : await this.getScopedRaw(parentId, id, true);
|
|
20037
20061
|
} catch (err) {
|
|
20038
20062
|
if (err instanceof NotFoundError) {
|
|
20039
|
-
const updateReason = _optionalChain([EMPTY_REASON_STAMPS, 'access',
|
|
20063
|
+
const updateReason = _optionalChain([EMPTY_REASON_STAMPS, 'access', _199 => _199[this.config.key], 'optionalAccess', _200 => _200.update]);
|
|
20040
20064
|
checks.push({
|
|
20041
20065
|
name: "current-record-exists",
|
|
20042
20066
|
ok: false,
|
|
@@ -20207,7 +20231,7 @@ function readIncludeNames(record, includeFields) {
|
|
|
20207
20231
|
function resolveAuthority(record, live) {
|
|
20208
20232
|
if (live !== null) return { known: live, authority: "the tenant's live entity field metadata" };
|
|
20209
20233
|
const vendored = MODEL_FIELD_SETS[record.resource];
|
|
20210
|
-
const liveOnlyExempt = Array.isArray(_optionalChain([record, 'access',
|
|
20234
|
+
const liveOnlyExempt = Array.isArray(_optionalChain([record, 'access', _201 => _201.metadata, 'optionalAccess', _202 => _202.liveOnlyFields])) ? record.metadata.liveOnlyFields : [];
|
|
20211
20235
|
if (vendored === void 0) return void 0;
|
|
20212
20236
|
return {
|
|
20213
20237
|
known: [...vendored, ...liveOnlyExempt],
|
|
@@ -20441,4 +20465,5 @@ async function validateQueryFieldNames(record, holder, args) {
|
|
|
20441
20465
|
|
|
20442
20466
|
|
|
20443
20467
|
|
|
20444
|
-
|
|
20468
|
+
|
|
20469
|
+
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.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.BLIND_SURFACE_STAMPS = BLIND_SURFACE_STAMPS; exports.DELETE_BOUNDARY_NOTES = DELETE_BOUNDARY_NOTES; exports.MARKER_FIELDS = MARKER_FIELDS; exports.EMPTY_REASON_STAMPS = EMPTY_REASON_STAMPS; exports.BLIND_SURFACE_INVENTORY = BLIND_SURFACE_INVENTORY; exports.REACHABILITY_PROBE_DEFAULTS = REACHABILITY_PROBE_DEFAULTS; exports.CREATE_GUIDANCE = CREATE_GUIDANCE; exports.UNTRUSTED_FIELDS_BY_RESOURCE = UNTRUSTED_FIELDS_BY_RESOURCE; 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.truncateNoteChars = truncateNoteChars; exports.buildDryRunResult = buildDryRunResult; exports.mergePartialBody = mergePartialBody; exports.blindStampFor = blindStampFor; exports.decodeFileData = decodeFileData; 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.BaseResource = BaseResource; exports.MODEL_FIELD_SETS = MODEL_FIELD_SETS; exports.MODEL_DATE_FIELDS = MODEL_DATE_FIELDS; exports.formatUnknownNameList = formatUnknownNameList; exports.validateQueryFieldNames = validateQueryFieldNames; 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.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.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.UI_LINK_ENTITIES = UI_LINK_ENTITIES; exports.buildUiLink = buildUiLink; exports.uiLink = uiLink;
|