@osdk/client 2.2.0-beta.14 → 2.2.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/build/browser/__unstable/ConjureSupport.js.map +1 -1
- package/build/browser/logger/BaseLogger.js +7 -1
- package/build/browser/logger/BaseLogger.js.map +1 -1
- package/build/browser/logger/BrowserLogger.js +67 -0
- package/build/browser/logger/BrowserLogger.js.map +1 -0
- package/build/browser/logger/MinimalLogger.js +12 -14
- package/build/browser/logger/MinimalLogger.js.map +1 -1
- package/build/browser/logger/MinimalLogger.test.js +60 -0
- package/build/browser/logger/MinimalLogger.test.js.map +1 -0
- package/build/browser/logger/TestLogger.js +3 -6
- package/build/browser/logger/TestLogger.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +0 -5
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/fetchPage.js +2 -2
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/ontology/loadFullObjectMetadata.js +0 -1
- package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/browser/public/internal.js +2 -0
- package/build/browser/public/internal.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/extractRdpDefinition.js +74 -21
- package/build/browser/util/extractRdpDefinition.js.map +1 -1
- package/build/browser/util/extractRdpDefinition.test.js +93 -4
- package/build/browser/util/extractRdpDefinition.test.js.map +1 -1
- package/build/cjs/Logger-a5UcHtrk.d.cts +19 -0
- package/build/cjs/{chunk-VT3UM6EP.cjs → chunk-6KYD7ZWT.cjs} +83 -14
- package/build/cjs/chunk-6KYD7ZWT.cjs.map +1 -0
- package/build/cjs/{chunk-USHAX4EP.cjs → chunk-KAJABLKV.cjs} +94 -37
- package/build/cjs/chunk-KAJABLKV.cjs.map +1 -0
- package/build/cjs/index.cjs +47 -114
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +2 -19
- package/build/cjs/public/internal.cjs +61 -6
- package/build/cjs/public/internal.cjs.map +1 -1
- package/build/cjs/public/internal.d.cts +50 -2
- package/build/cjs/public/unstable-do-not-use.cjs +8 -8
- package/build/esm/__unstable/ConjureSupport.js.map +1 -1
- package/build/esm/logger/BaseLogger.js +7 -1
- package/build/esm/logger/BaseLogger.js.map +1 -1
- package/build/esm/logger/BrowserLogger.js +67 -0
- package/build/esm/logger/BrowserLogger.js.map +1 -0
- package/build/esm/logger/MinimalLogger.js +12 -14
- package/build/esm/logger/MinimalLogger.js.map +1 -1
- package/build/esm/logger/MinimalLogger.test.js +60 -0
- package/build/esm/logger/MinimalLogger.test.js.map +1 -0
- package/build/esm/logger/TestLogger.js +3 -6
- package/build/esm/logger/TestLogger.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +0 -5
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/fetchPage.js +2 -2
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.js +0 -1
- package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/esm/public/internal.js +2 -0
- package/build/esm/public/internal.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/extractRdpDefinition.js +74 -21
- package/build/esm/util/extractRdpDefinition.js.map +1 -1
- package/build/esm/util/extractRdpDefinition.test.js +93 -4
- package/build/esm/util/extractRdpDefinition.test.js.map +1 -1
- package/build/types/__unstable/ConjureSupport.d.ts +2 -2
- package/build/types/logger/BaseLogger.d.ts +4 -1
- package/build/types/logger/BaseLogger.d.ts.map +1 -1
- package/build/types/logger/BrowserLogger.d.ts +10 -0
- package/build/types/logger/BrowserLogger.d.ts.map +1 -0
- package/build/types/logger/MinimalLogger.d.ts +2 -1
- package/build/types/logger/MinimalLogger.d.ts.map +1 -1
- package/build/types/logger/MinimalLogger.test.d.ts +1 -0
- package/build/types/logger/MinimalLogger.test.d.ts.map +1 -0
- package/build/types/logger/TestLogger.d.ts +2 -2
- package/build/types/logger/TestLogger.d.ts.map +1 -1
- package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
- package/build/types/public/internal.d.ts +2 -0
- package/build/types/public/internal.d.ts.map +1 -1
- package/build/types/util/extractRdpDefinition.d.ts +1 -1
- package/build/types/util/extractRdpDefinition.d.ts.map +1 -1
- package/package.json +11 -11
- package/build/cjs/chunk-USHAX4EP.cjs.map +0 -1
- package/build/cjs/chunk-VT3UM6EP.cjs.map +0 -1
package/build/cjs/index.d.cts
CHANGED
|
@@ -2,6 +2,7 @@ import { ActionValidationResponse, AttachmentUpload, ObjectTypeDefinition, Prima
|
|
|
2
2
|
export { ActionDefinition, ActionEditResponse, ActionMetadata, ActionParam, ActionReturnTypeForOptions, ActionValidationResponse, ApplyActionOptions, ApplyBatchActionOptions, InterfaceDefinition, ObjectMetadata, ObjectSet, ObjectSpecifier, ObjectTypeDefinition, Osdk, OsdkObject, PageResult, PropertyDef, PropertyKeys, PropertyValueWireToClient, QueryDefinition, QueryParam, QueryResult, Result, SingleLinkAccessor, VersionBound, WhereClause, isOk } from '@osdk/api';
|
|
3
3
|
export { PalantirApiError } from '@osdk/shared.net.errors';
|
|
4
4
|
import { C as Client } from './Client-DBTcM9gB.cjs';
|
|
5
|
+
import { L as Logger } from './Logger-a5UcHtrk.cjs';
|
|
5
6
|
import { SharedClientContext } from '@osdk/shared.client2';
|
|
6
7
|
import '@osdk/shared.client';
|
|
7
8
|
import '@osdk/api/unstable';
|
|
@@ -11,24 +12,6 @@ declare class ActionValidationError extends Error {
|
|
|
11
12
|
constructor(validation: ActionValidationResponse);
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
interface Logger {
|
|
15
|
-
trace: LogFn;
|
|
16
|
-
debug: LogFn;
|
|
17
|
-
fatal: LogFn;
|
|
18
|
-
error: LogFn;
|
|
19
|
-
warn: LogFn;
|
|
20
|
-
info: LogFn;
|
|
21
|
-
isLevelEnabled(level: string): boolean;
|
|
22
|
-
child(bindings: Record<string, any>, options?: {
|
|
23
|
-
level?: string;
|
|
24
|
-
msgPrefix?: string;
|
|
25
|
-
}): Logger;
|
|
26
|
-
}
|
|
27
|
-
interface LogFn {
|
|
28
|
-
(obj: unknown, msg?: string, ...args: any[]): void;
|
|
29
|
-
(msg: string, ...args: any[]): void;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
15
|
declare const createClient: (baseUrl: string, ontologyRid: string | Promise<string>, tokenProvider: () => Promise<string>, options?: {
|
|
33
16
|
logger?: Logger;
|
|
34
17
|
} | undefined, fetchFn?: typeof fetch | undefined) => Client;
|
|
@@ -92,4 +75,4 @@ declare const extractDateInUTC: (date: Date) => string;
|
|
|
92
75
|
*/
|
|
93
76
|
declare const extractDateInLocalTime: (date: Date) => string;
|
|
94
77
|
|
|
95
|
-
export { ActionValidationError, Client,
|
|
78
|
+
export { ActionValidationError, Client, Logger, type PlatformClient, type ResultOrError, createAttachmentUpload, createClient, createObjectSpecifierFromPrimaryKey, createPlatformClient, extractDate, extractDateInLocalTime, extractDateInUTC };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk6KYD7ZWT_cjs = require('../chunk-6KYD7ZWT.cjs');
|
|
4
|
+
var chunkKAJABLKV_cjs = require('../chunk-KAJABLKV.cjs');
|
|
5
5
|
|
|
6
6
|
// src/public-utils/createAndFetchTempObjectSetRid.ts
|
|
7
7
|
async function createAndFetchTempObjectSetRid(client, objectSet) {
|
|
8
|
-
const response = await
|
|
9
|
-
objectSet:
|
|
8
|
+
const response = await chunkKAJABLKV_cjs.OntologyObjectSet_exports.createTemporary(client, await client[chunkKAJABLKV_cjs.additionalContext].ontologyRid, {
|
|
9
|
+
objectSet: chunk6KYD7ZWT_cjs.getWireObjectSet(objectSet)
|
|
10
10
|
});
|
|
11
11
|
return response.objectSetRid;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
// src/public-utils/hydrateObjectSetFromRid.ts
|
|
15
15
|
function hydrateObjectSetFromRid(client, definition, rid) {
|
|
16
|
-
return
|
|
16
|
+
return chunk6KYD7ZWT_cjs.createObjectSet(definition, client[chunkKAJABLKV_cjs.additionalContext], {
|
|
17
17
|
type: "intersect",
|
|
18
18
|
objectSets: [{
|
|
19
19
|
type: "base",
|
|
@@ -25,10 +25,65 @@ function hydrateObjectSetFromRid(client, definition, rid) {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
// src/logger/BrowserLogger.ts
|
|
29
|
+
function createStyle({
|
|
30
|
+
color
|
|
31
|
+
}) {
|
|
32
|
+
return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;
|
|
33
|
+
}
|
|
34
|
+
var levelStyles = {
|
|
35
|
+
debug: createStyle({
|
|
36
|
+
color: "LightBlue"
|
|
37
|
+
}),
|
|
38
|
+
error: createStyle({
|
|
39
|
+
color: "red"
|
|
40
|
+
}),
|
|
41
|
+
fatal: createStyle({
|
|
42
|
+
color: "red"
|
|
43
|
+
}),
|
|
44
|
+
info: createStyle({
|
|
45
|
+
color: "green"
|
|
46
|
+
}),
|
|
47
|
+
trace: createStyle({
|
|
48
|
+
color: "gray"
|
|
49
|
+
}),
|
|
50
|
+
warn: createStyle({
|
|
51
|
+
color: "orange"
|
|
52
|
+
})
|
|
53
|
+
};
|
|
54
|
+
var BrowserLogger = class _BrowserLogger extends chunk6KYD7ZWT_cjs.BaseLogger {
|
|
55
|
+
constructor(bindings = {}, options = {}) {
|
|
56
|
+
super(bindings, {
|
|
57
|
+
...options,
|
|
58
|
+
level: options.level ?? "error"
|
|
59
|
+
}, _BrowserLogger);
|
|
60
|
+
}
|
|
61
|
+
createLogMethod(name, bindings) {
|
|
62
|
+
const msgs = [`%c${name}%c`];
|
|
63
|
+
const styles = [levelStyles[name], ""];
|
|
64
|
+
if (this.options?.msgPrefix) {
|
|
65
|
+
msgs.push(`%c${this.options.msgPrefix}%c`);
|
|
66
|
+
styles.push("font-style: italic; color: gray", "");
|
|
67
|
+
}
|
|
68
|
+
if (typeof bindings === "object" && "methodName" in bindings) {
|
|
69
|
+
msgs.push(`%c.${bindings.methodName}()%c`);
|
|
70
|
+
styles.push("font-style: italic;color: orchid", "");
|
|
71
|
+
}
|
|
72
|
+
return (...args) => {
|
|
73
|
+
console[name === "fatal" ? "error" : name](msgs.join(" "), ...styles, ...args);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
Object.defineProperty(exports, "MinimalLogger", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function () { return chunk6KYD7ZWT_cjs.MinimalLogger; }
|
|
81
|
+
});
|
|
28
82
|
Object.defineProperty(exports, "hydrateAttachmentFromRid", {
|
|
29
83
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
84
|
+
get: function () { return chunk6KYD7ZWT_cjs.hydrateAttachmentFromRid; }
|
|
31
85
|
});
|
|
86
|
+
exports.BrowserLogger = BrowserLogger;
|
|
32
87
|
exports.createAndFetchTempObjectSetRid = createAndFetchTempObjectSetRid;
|
|
33
88
|
exports.hydrateObjectSetFromRid = hydrateObjectSetFromRid;
|
|
34
89
|
//# sourceMappingURL=internal.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/public-utils/createAndFetchTempObjectSetRid.ts","../../../src/public-utils/hydrateObjectSetFromRid.ts"],"names":["OntologyObjectSet_exports","additionalContext","getWireObjectSet","createObjectSet"],"mappings":";;;;;;AA2BA,eAAsB,8BAAA,CAA+B,QAAQ,SAAW,EAAA;AACtE,EAAM,MAAA,QAAA,GAAW,MAAMA,2CAAmB,CAAA,eAAA,CAAgB,QAAQ,MAAM,MAAA,CAAOC,mCAAiB,CAAA,CAAE,WAAa,EAAA;AAAA,IAC7G,SAAA,EAAWC,mCAAiB,SAAS;AAAA,GACtC,CAAA;AACD,EAAA,OAAO,QAAS,CAAA,YAAA;AAClB;;;ACNO,SAAS,uBAAA,CAAwB,MAAQ,EAAA,UAAA,EAAY,GAAK,EAAA;AAC/D,EAAA,OAAOC,iCAAgB,CAAA,UAAA,EAAY,MAAO,CAAAF,mCAAiB,CAAG,EAAA;AAAA,IAC5D,IAAM,EAAA,WAAA;AAAA,IACN,YAAY,CAAC;AAAA,MACX,IAAM,EAAA,MAAA;AAAA,MACN,YAAY,UAAW,CAAA;AAAA,KACtB,EAAA;AAAA,MACD,IAAM,EAAA,WAAA;AAAA,MACN,SAAW,EAAA;AAAA,KACZ;AAAA,GACF,CAAA;AACH","file":"internal.cjs","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OntologyObjectSets } from \"@osdk/foundry.ontologies\";\nimport { additionalContext } from \"../Client.js\";\nimport { getWireObjectSet } from \"../objectSet/createObjectSet.js\";\n\n/**\n * Fetches a temporary object set RID from the Foundry stack for the given object set.\n *\n * @param client - An OSDK client.\n * @param objectSet - The object set to fetch a RID for.\n * @returns A promise that resolves to the RID of the temporary object set.\n */\nexport async function createAndFetchTempObjectSetRid(client, objectSet) {\n const response = await OntologyObjectSets.createTemporary(client, await client[additionalContext].ontologyRid, {\n objectSet: getWireObjectSet(objectSet)\n });\n return response.objectSetRid;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { additionalContext } from \"../Client.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\n\n/**\n * Creates an OSDK object set from an object set RID.\n * @param client - An OSDK client.\n * @param definition - An OSDK object or interface definition.\n * @param rid - The RID of an object set.\n * @returns An OSDK object set.\n */\nexport function hydrateObjectSetFromRid(client, definition, rid) {\n return createObjectSet(definition, client[additionalContext], {\n type: \"intersect\",\n objectSets: [{\n type: \"base\",\n objectType: definition.apiName\n }, {\n type: \"reference\",\n reference: rid\n }]\n });\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/public-utils/createAndFetchTempObjectSetRid.ts","../../../src/public-utils/hydrateObjectSetFromRid.ts","../../../src/logger/BrowserLogger.ts"],"names":["OntologyObjectSet_exports","additionalContext","getWireObjectSet","createObjectSet","BaseLogger"],"mappings":"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","file":"internal.cjs","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OntologyObjectSets } from \"@osdk/foundry.ontologies\";\nimport { additionalContext } from \"../Client.js\";\nimport { getWireObjectSet } from \"../objectSet/createObjectSet.js\";\n\n/**\n * Fetches a temporary object set RID from the Foundry stack for the given object set.\n *\n * @param client - An OSDK client.\n * @param objectSet - The object set to fetch a RID for.\n * @returns A promise that resolves to the RID of the temporary object set.\n */\nexport async function createAndFetchTempObjectSetRid(client, objectSet) {\n const response = await OntologyObjectSets.createTemporary(client, await client[additionalContext].ontologyRid, {\n objectSet: getWireObjectSet(objectSet)\n });\n return response.objectSetRid;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { additionalContext } from \"../Client.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\n\n/**\n * Creates an OSDK object set from an object set RID.\n * @param client - An OSDK client.\n * @param definition - An OSDK object or interface definition.\n * @param rid - The RID of an object set.\n * @returns An OSDK object set.\n */\nexport function hydrateObjectSetFromRid(client, definition, rid) {\n return createObjectSet(definition, client[additionalContext], {\n type: \"intersect\",\n objectSets: [{\n type: \"base\",\n objectType: definition.apiName\n }, {\n type: \"reference\",\n reference: rid\n }]\n });\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseLogger } from \"./BaseLogger.js\";\nfunction createStyle({\n color\n}) {\n return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;\n}\nconst levelStyles = {\n debug: createStyle({\n color: \"LightBlue\"\n }),\n error: createStyle({\n color: \"red\"\n }),\n fatal: createStyle({\n color: \"red\"\n }),\n info: createStyle({\n color: \"green\"\n }),\n trace: createStyle({\n color: \"gray\"\n }),\n warn: createStyle({\n color: \"orange\"\n })\n};\nexport class BrowserLogger extends BaseLogger {\n constructor(bindings = {}, options = {}) {\n super(bindings, {\n ...options,\n level: options.level ?? \"error\"\n }, BrowserLogger);\n }\n createLogMethod(name, bindings) {\n const msgs = [`%c${name}%c`];\n const styles = [levelStyles[name], \"\"];\n if (this.options?.msgPrefix) {\n msgs.push(`%c${this.options.msgPrefix}%c`);\n styles.push(\"font-style: italic; color: gray\", \"\");\n }\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`%c.${bindings.methodName}()%c`);\n styles.push(\"font-style: italic;color: orchid\", \"\");\n }\n return (...args) => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](msgs.join(\" \"), ...styles, ...args);\n };\n }\n}"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ObjectOrInterfaceDefinition, CompileTimeMetadata, ObjectSet, Attachment } from '@osdk/api';
|
|
1
|
+
import { ObjectOrInterfaceDefinition, CompileTimeMetadata, ObjectSet, Attachment, Logger } from '@osdk/api';
|
|
2
2
|
import { C as Client } from '../Client-DBTcM9gB.cjs';
|
|
3
|
+
import { a as LogFn, L as Logger$1 } from '../Logger-a5UcHtrk.cjs';
|
|
3
4
|
import '@osdk/shared.client';
|
|
4
5
|
import '@osdk/api/unstable';
|
|
5
6
|
import '@osdk/shared.client2';
|
|
@@ -30,4 +31,51 @@ declare function hydrateAttachmentFromRid(client: Client, rid: string): Attachme
|
|
|
30
31
|
*/
|
|
31
32
|
declare function hydrateObjectSetFromRid<T extends ObjectOrInterfaceDefinition>(client: Client, definition: T, rid: string): ObjectSet<T>;
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
interface LoggerConstructor {
|
|
35
|
+
new (bindings: Record<string, any>, options?: {
|
|
36
|
+
level?: string;
|
|
37
|
+
msgPrefix?: string;
|
|
38
|
+
}): Logger;
|
|
39
|
+
}
|
|
40
|
+
declare abstract class BaseLogger implements Logger {
|
|
41
|
+
#private;
|
|
42
|
+
protected bindings: Record<string, any>;
|
|
43
|
+
protected options: {
|
|
44
|
+
level?: string;
|
|
45
|
+
msgPrefix?: string;
|
|
46
|
+
} | undefined;
|
|
47
|
+
constructor(bindings: Record<string, any>, options: {
|
|
48
|
+
level?: string;
|
|
49
|
+
msgPrefix?: string;
|
|
50
|
+
} | undefined, factory: LoggerConstructor);
|
|
51
|
+
protected abstract createLogMethod(name: "trace" | "debug" | "info" | "warn" | "error" | "fatal", bindings: Record<string, any>): LogFn;
|
|
52
|
+
trace: LogFn;
|
|
53
|
+
debug: LogFn;
|
|
54
|
+
warn: LogFn;
|
|
55
|
+
info: LogFn;
|
|
56
|
+
error: LogFn;
|
|
57
|
+
fatal: LogFn;
|
|
58
|
+
child(bindings: Record<string, any>, options?: {
|
|
59
|
+
level?: string;
|
|
60
|
+
msgPrefix?: string;
|
|
61
|
+
}): Logger;
|
|
62
|
+
isLevelEnabled(level: string): boolean;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
declare class BrowserLogger extends BaseLogger implements Logger {
|
|
66
|
+
constructor(bindings?: Record<string, any>, options?: {
|
|
67
|
+
level?: string;
|
|
68
|
+
msgPrefix?: string;
|
|
69
|
+
});
|
|
70
|
+
protected createLogMethod(name: "trace" | "debug" | "info" | "warn" | "error" | "fatal", bindings: Record<string, any>): LogFn;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
declare class MinimalLogger extends BaseLogger implements Logger$1 {
|
|
74
|
+
constructor(bindings?: Record<string, any>, options?: {
|
|
75
|
+
level?: string;
|
|
76
|
+
msgPrefix?: string;
|
|
77
|
+
});
|
|
78
|
+
createLogMethod(name: "trace" | "debug" | "info" | "warn" | "error" | "fatal", bindings: Record<string, any>): LogFn;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { BrowserLogger, MinimalLogger, createAndFetchTempObjectSetRid, hydrateAttachmentFromRid, hydrateObjectSetFromRid };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkT4NIFYZS_cjs = require('../chunk-T4NIFYZS.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkKAJABLKV_cjs = require('../chunk-KAJABLKV.cjs');
|
|
5
5
|
var rxjs = require('rxjs');
|
|
6
6
|
var invariant2 = require('tiny-invariant');
|
|
7
7
|
var mnemonist = require('mnemonist');
|
|
@@ -191,7 +191,7 @@ var OptimisticJob = class {
|
|
|
191
191
|
return this;
|
|
192
192
|
},
|
|
193
193
|
createObject(type, pk, properties) {
|
|
194
|
-
const create = store.client[
|
|
194
|
+
const create = store.client[chunkKAJABLKV_cjs.additionalContext].objectFactory2(store.client[chunkKAJABLKV_cjs.additionalContext], [{
|
|
195
195
|
$primaryKey: pk,
|
|
196
196
|
$apiName: type.apiName,
|
|
197
197
|
$objectType: type.apiName,
|
|
@@ -596,7 +596,7 @@ var BulkObjectLoader = class {
|
|
|
596
596
|
#maxEntries;
|
|
597
597
|
constructor(client, maxWait = 25, maxEntries = 100) {
|
|
598
598
|
this.#client = client;
|
|
599
|
-
this.#logger = client[
|
|
599
|
+
this.#logger = client[chunkKAJABLKV_cjs.additionalContext].logger;
|
|
600
600
|
this.#maxWait = maxWait;
|
|
601
601
|
this.#maxEntries = maxEntries;
|
|
602
602
|
}
|
|
@@ -666,7 +666,7 @@ var Query = class {
|
|
|
666
666
|
this.cacheKey = cacheKey;
|
|
667
667
|
this.store = store;
|
|
668
668
|
this.#subject = observable;
|
|
669
|
-
this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[
|
|
669
|
+
this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkKAJABLKV_cjs.additionalContext].logger : store.client[chunkKAJABLKV_cjs.additionalContext].logger?.child({}, {
|
|
670
670
|
msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>` : "Query"
|
|
671
671
|
}));
|
|
672
672
|
}
|
|
@@ -773,7 +773,7 @@ var ObjectQuery = class extends Query {
|
|
|
773
773
|
#apiName;
|
|
774
774
|
#pk;
|
|
775
775
|
constructor(store, subject, type, pk, cacheKey, opts) {
|
|
776
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
776
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkKAJABLKV_cjs.additionalContext].logger?.child({}, {
|
|
777
777
|
msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
778
778
|
}) : undefined);
|
|
779
779
|
this.#apiName = type;
|
|
@@ -934,7 +934,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
934
934
|
#objectSet;
|
|
935
935
|
#sortFns;
|
|
936
936
|
constructor(store, subject, apiType, apiName, whereClause, orderBy, cacheKey, opts) {
|
|
937
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
937
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkKAJABLKV_cjs.additionalContext].logger?.child({}, {
|
|
938
938
|
msgPrefix: `ListQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
939
939
|
}) : undefined);
|
|
940
940
|
this.#type = apiType;
|
|
@@ -1563,7 +1563,7 @@ var Store = class {
|
|
|
1563
1563
|
#finalizationRegistry;
|
|
1564
1564
|
constructor(client) {
|
|
1565
1565
|
this.client = client;
|
|
1566
|
-
this.logger = client[
|
|
1566
|
+
this.logger = client[chunkKAJABLKV_cjs.additionalContext].logger?.child({}, {
|
|
1567
1567
|
msgPrefix: "Store"
|
|
1568
1568
|
});
|
|
1569
1569
|
this.#topLayer = this.#truthLayer;
|
|
@@ -1893,7 +1893,7 @@ function getOsdkConfig(ontologyRid) {
|
|
|
1893
1893
|
|
|
1894
1894
|
Object.defineProperty(exports, "augment", {
|
|
1895
1895
|
enumerable: true,
|
|
1896
|
-
get: function () { return
|
|
1896
|
+
get: function () { return chunkKAJABLKV_cjs.augment; }
|
|
1897
1897
|
});
|
|
1898
1898
|
exports.createObservableClient = createObservableClient;
|
|
1899
1899
|
exports.getMetaTagContent = getMetaTagContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConjureSupport.js","names":["bulkLoadOntologyEntities","getLinkTypesForObjectTypes","loadAllOntologies","invariant","createSimpleAsyncCache","createSimpleCache","makeConjureContext","cachedAllOntologies","getOntologyVersionForRid","ctx","ontologyRid","ontologies","process","env","NODE_ENV","currentOntologyVersion","strongMemoSync","fn","Map","get","weakMemoSync","WeakMap","strongMemoAsync","weakMemoAsync","MetadataClient","client","logger","constructor","ontologyProvider","getObjectDefinition","child","mcc","forObjectByRid","rid","Promise","resolve","getPropertyMapping","objectPropertyMapping","bind","getLinkMapping","objectLinkMapping","getRid","getApiName","getConjureObjectType","apiName","forObjectByApiName","objectApiName","objectDef","objectTypeRid","conjureObjectType","createObjectPropertyMapping","linkTypes","includeObjectTypesWithoutSearchableDatasources","loadRedacted","objectTypeBranches","objectTypeVersions","ontologyVersion","ret","l","helper","linkSide","otherObjectType","directedLinkTypeRid","linkTypeRid","definition","type","oneToMany","objectTypeRidManySide","manyToOneLinkMetadata","objectTypeRidOneSide","oneToManyLinkMetadata","manyToMany","objectTypeRidA","objectTypeAToBLinkMetadata","objectTypeRidB","objectTypeBToALinkMetadata","debug","body","datasourceTypes","objectTypes","identifier","versionReference","sharedPropertyTypes","interfaceTypes","typeGroups","includeObjectTypeCount","undefined","includeEntityMetadata","actionTypes","includeTypeGroupEntitiesCount","entityMetadata","entities","objectType","metadataCacheClient","conjureOT","primaryKeys","length","pkRid","pkProperty","Object","values","propertyTypes","find","a","Error","propertyIdToApiNameMapping","fromEntries","map","property","id","propertyApiNameToIdMapping","pk"],"sources":["ConjureSupport.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DirectedLinkTypeRid,\n LinkTypeMetadata,\n LoadAllOntologiesResponse,\n ObjectType,\n Type,\n} from \"@osdk/client.unstable\";\nimport {\n bulkLoadOntologyEntities,\n getLinkTypesForObjectTypes,\n loadAllOntologies,\n} from \"@osdk/client.unstable\";\nimport type { ConjureContext } from \"conjure-lite\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n createSimpleAsyncCache,\n createSimpleCache,\n} from \"../object/SimpleCache.js\";\nimport { makeConjureContext } from \"../ontology/makeConjureContext.js\";\n\nexport interface ObjectPropertyMapping {\n apiName: string;\n id: string;\n propertyIdToApiNameMapping: Record<string, string>;\n propertyApiNameToIdMapping: Record<string, string>;\n pk: {\n rid: string;\n apiName: string;\n type: Type;\n };\n}\n\ntype ObjectLinkMapping = Record<string, {\n apiName: string;\n directedLinkTypeRid: DirectedLinkTypeRid;\n otherObjectType: string; // rid\n}>;\n\nlet cachedAllOntologies: LoadAllOntologiesResponse | undefined;\nasync function getOntologyVersionForRid(\n ctx: ConjureContext,\n ontologyRid: string,\n) {\n cachedAllOntologies ??= await loadAllOntologies(ctx, {});\n invariant(\n cachedAllOntologies.ontologies[ontologyRid],\n \"ontology should be loaded\",\n );\n\n return cachedAllOntologies.ontologies[ontologyRid].currentOntologyVersion;\n}\n\nconst strongMemoSync = <K, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new Map(), fn).get;\n\nconst weakMemoSync = <K extends object, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new WeakMap() as any, fn).get; // FIXME\n\nconst strongMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"strong\", fn).get;\n\nconst weakMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"weak\", fn).get;\n\nexport class MetadataClient {\n #client: MinimalClient;\n #ctx: ConjureContext;\n #logger: any;\n\n constructor(client: MinimalClient) {\n this.#client = client;\n this.#ctx = makeConjureContext(client, \"ontology-metadata/api\");\n this.#client.ontologyProvider.getObjectDefinition;\n\n this.#logger = this.#client.logger?.child({\n mcc: true,\n });\n }\n\n forObjectByRid: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | undefined>;\n }> = strongMemoAsync(async (rid: string) => {\n return Promise.resolve({\n getPropertyMapping: this.#objectPropertyMapping.bind(this, rid),\n getLinkMapping: this.#objectLinkMapping.bind(this, rid),\n getRid: () => rid,\n getApiName: async () => (await this.#getConjureObjectType(rid)).apiName,\n });\n });\n\n forObjectByApiName: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | undefined>;\n }> = strongMemoAsync(\n async (objectApiName: string) => {\n const objectDef = await this.#client.ontologyProvider.getObjectDefinition(\n objectApiName,\n );\n return this.forObjectByRid(objectDef.rid);\n },\n );\n\n #objectPropertyMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const conjureObjectType = await this.#getConjureObjectType(objectTypeRid);\n return createObjectPropertyMapping(conjureObjectType);\n });\n\n #objectLinkMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const linkTypes = await getLinkTypesForObjectTypes(this.#ctx, {\n includeObjectTypesWithoutSearchableDatasources: true,\n loadRedacted: false,\n objectTypeBranches: {},\n objectTypeVersions: {\n [objectTypeRid]: await this.ontologyVersion(\"\"),\n },\n });\n invariant(\n linkTypes.linkTypes[objectTypeRid],\n \"link type should be loaded\",\n );\n\n // apiName to content\n const ret: ObjectLinkMapping = {};\n for (const l of linkTypes.linkTypes[objectTypeRid]) {\n const helper = (\n { apiName }: LinkTypeMetadata,\n linkSide: \"SOURCE\" | \"TARGET\",\n otherObjectType: string,\n ) => {\n if (apiName) {\n ret[apiName] = {\n apiName,\n directedLinkTypeRid: {\n linkTypeRid: l.rid,\n linkSide,\n },\n otherObjectType,\n };\n }\n };\n if (l.definition.type === \"oneToMany\") {\n const {\n oneToMany: {\n objectTypeRidManySide,\n manyToOneLinkMetadata,\n objectTypeRidOneSide,\n oneToManyLinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidManySide === objectTypeRid) {\n helper(\n manyToOneLinkMetadata,\n \"TARGET\",\n objectTypeRidOneSide,\n );\n }\n if (objectTypeRidOneSide === objectTypeRid) {\n helper(\n oneToManyLinkMetadata,\n \"SOURCE\",\n objectTypeRidManySide,\n );\n }\n } else if (l.definition.type === \"manyToMany\") {\n const {\n manyToMany: {\n objectTypeRidA,\n objectTypeAToBLinkMetadata,\n objectTypeRidB,\n objectTypeBToALinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidA === objectTypeRid) {\n helper(\n objectTypeAToBLinkMetadata,\n \"SOURCE\",\n objectTypeRidB,\n );\n }\n\n if (objectTypeRidB === objectTypeRid) {\n helper(\n objectTypeBToALinkMetadata,\n \"TARGET\",\n objectTypeRidA,\n );\n }\n }\n }\n\n return ret;\n });\n\n #getConjureObjectType = strongMemoAsync(async (objectTypeRid: string) => {\n this.#logger?.debug(`getConjureObjectType(${objectTypeRid})`);\n const body = {\n datasourceTypes: [],\n objectTypes: [{\n identifier: {\n type: \"objectTypeRid\" as const,\n objectTypeRid: objectTypeRid,\n },\n versionReference: {\n type: \"ontologyVersion\" as const,\n ontologyVersion: await this.ontologyVersion(\"\"),\n },\n }],\n linkTypes: [],\n sharedPropertyTypes: [],\n interfaceTypes: [],\n typeGroups: [],\n loadRedacted: false,\n includeObjectTypeCount: undefined,\n includeObjectTypesWithoutSearchableDatasources: true,\n includeEntityMetadata: undefined,\n actionTypes: [],\n includeTypeGroupEntitiesCount: undefined,\n entityMetadata: undefined,\n };\n const entities = await bulkLoadOntologyEntities(this.#ctx, undefined, body);\n invariant(\n entities.objectTypes[0]?.objectType,\n \"object type should be loaded\",\n );\n return entities.objectTypes[0].objectType;\n });\n\n ontologyVersion: (key: string) => Promise<string> = strongMemoAsync(async (\n _: string,\n ) => getOntologyVersionForRid(this.#ctx, await this.#client.ontologyRid));\n}\n\nexport const metadataCacheClient: (\n key: MinimalClient,\n) => Promise<MetadataClient> = weakMemoAsync(\n (client: MinimalClient) => Promise.resolve(new MetadataClient(client)),\n);\n\nfunction createObjectPropertyMapping(\n conjureOT: ObjectType,\n): ObjectPropertyMapping {\n invariant(\n conjureOT.primaryKeys.length === 1,\n `only one primary key supported, got ${conjureOT.primaryKeys.length}`,\n );\n const pkRid = conjureOT.primaryKeys[0];\n\n const pkProperty = Object.values(conjureOT.propertyTypes).find(a =>\n a.rid === pkRid\n );\n if (!pkProperty) {\n throw new Error(`Could not find PK property by rid: ${pkRid}`);\n }\n\n const propertyIdToApiNameMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.id, property.apiName!];\n },\n ),\n );\n\n const propertyApiNameToIdMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.apiName!, property.id];\n },\n ),\n );\n\n return {\n apiName: conjureOT.apiName!,\n id: conjureOT.id,\n propertyIdToApiNameMapping,\n propertyApiNameToIdMapping,\n pk: {\n rid: pkRid,\n apiName: pkProperty.apiName!,\n type: pkProperty.type,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ConjureSupport.js","names":["bulkLoadOntologyEntities","getLinkTypesForObjectTypes","loadAllOntologies","invariant","createSimpleAsyncCache","createSimpleCache","makeConjureContext","cachedAllOntologies","getOntologyVersionForRid","ctx","ontologyRid","ontologies","process","env","NODE_ENV","currentOntologyVersion","strongMemoSync","fn","Map","get","weakMemoSync","WeakMap","strongMemoAsync","weakMemoAsync","MetadataClient","client","logger","constructor","ontologyProvider","getObjectDefinition","child","mcc","forObjectByRid","rid","Promise","resolve","getPropertyMapping","objectPropertyMapping","bind","getLinkMapping","objectLinkMapping","getRid","getApiName","getConjureObjectType","apiName","forObjectByApiName","objectApiName","objectDef","objectTypeRid","conjureObjectType","createObjectPropertyMapping","linkTypes","includeObjectTypesWithoutSearchableDatasources","loadRedacted","objectTypeBranches","objectTypeVersions","ontologyVersion","ret","l","helper","linkSide","otherObjectType","directedLinkTypeRid","linkTypeRid","definition","type","oneToMany","objectTypeRidManySide","manyToOneLinkMetadata","objectTypeRidOneSide","oneToManyLinkMetadata","manyToMany","objectTypeRidA","objectTypeAToBLinkMetadata","objectTypeRidB","objectTypeBToALinkMetadata","debug","body","datasourceTypes","objectTypes","identifier","versionReference","sharedPropertyTypes","interfaceTypes","typeGroups","includeObjectTypeCount","undefined","includeEntityMetadata","actionTypes","includeTypeGroupEntitiesCount","entityMetadata","entities","objectType","metadataCacheClient","conjureOT","primaryKeys","length","pkRid","pkProperty","Object","values","propertyTypes","find","a","Error","propertyIdToApiNameMapping","fromEntries","map","property","id","propertyApiNameToIdMapping","pk"],"sources":["ConjureSupport.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DirectedLinkTypeRid,\n LinkTypeMetadata,\n LoadAllOntologiesResponse,\n ObjectType,\n Type,\n} from \"@osdk/client.unstable\";\nimport {\n bulkLoadOntologyEntities,\n getLinkTypesForObjectTypes,\n loadAllOntologies,\n} from \"@osdk/client.unstable\";\nimport type { ConjureContext } from \"conjure-lite\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n createSimpleAsyncCache,\n createSimpleCache,\n} from \"../object/SimpleCache.js\";\nimport { makeConjureContext } from \"../ontology/makeConjureContext.js\";\n\nexport interface ObjectPropertyMapping {\n apiName: string;\n id: string;\n propertyIdToApiNameMapping: Record<string, string>;\n propertyApiNameToIdMapping: Record<string, string>;\n pk: {\n rid: string;\n apiName: string;\n type: Type;\n };\n}\n\ntype ObjectLinkMapping = Record<string, {\n apiName: string;\n directedLinkTypeRid: DirectedLinkTypeRid;\n otherObjectType: string; // rid\n}>;\n\nlet cachedAllOntologies: LoadAllOntologiesResponse | undefined;\nasync function getOntologyVersionForRid(\n ctx: ConjureContext,\n ontologyRid: string,\n) {\n cachedAllOntologies ??= await loadAllOntologies(ctx, {});\n invariant(\n cachedAllOntologies.ontologies[ontologyRid],\n \"ontology should be loaded\",\n );\n\n return cachedAllOntologies.ontologies[ontologyRid].currentOntologyVersion;\n}\n\nconst strongMemoSync = <K, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new Map(), fn).get;\n\nconst weakMemoSync = <K extends object, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new WeakMap() as any, fn).get; // FIXME\n\nconst strongMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"strong\", fn).get;\n\nconst weakMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"weak\", fn).get;\n\nexport class MetadataClient {\n #client: MinimalClient;\n #ctx: ConjureContext;\n #logger: any;\n\n constructor(client: MinimalClient) {\n this.#client = client;\n this.#ctx = makeConjureContext(client, \"ontology-metadata/api\");\n this.#client.ontologyProvider.getObjectDefinition;\n\n this.#logger = this.#client.logger?.child({\n mcc: true,\n });\n }\n\n forObjectByRid: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | null | undefined>;\n }> = strongMemoAsync(async (rid: string) => {\n return Promise.resolve({\n getPropertyMapping: this.#objectPropertyMapping.bind(this, rid),\n getLinkMapping: this.#objectLinkMapping.bind(this, rid),\n getRid: () => rid,\n getApiName: async () => (await this.#getConjureObjectType(rid)).apiName,\n });\n });\n\n forObjectByApiName: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | null | undefined>;\n }> = strongMemoAsync(\n async (objectApiName: string) => {\n const objectDef = await this.#client.ontologyProvider.getObjectDefinition(\n objectApiName,\n );\n return this.forObjectByRid(objectDef.rid);\n },\n );\n\n #objectPropertyMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const conjureObjectType = await this.#getConjureObjectType(objectTypeRid);\n return createObjectPropertyMapping(conjureObjectType);\n });\n\n #objectLinkMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const linkTypes = await getLinkTypesForObjectTypes(this.#ctx, {\n includeObjectTypesWithoutSearchableDatasources: true,\n loadRedacted: false,\n objectTypeBranches: {},\n objectTypeVersions: {\n [objectTypeRid]: await this.ontologyVersion(\"\"),\n },\n });\n invariant(\n linkTypes.linkTypes[objectTypeRid],\n \"link type should be loaded\",\n );\n\n // apiName to content\n const ret: ObjectLinkMapping = {};\n for (const l of linkTypes.linkTypes[objectTypeRid]) {\n const helper = (\n { apiName }: LinkTypeMetadata,\n linkSide: \"SOURCE\" | \"TARGET\",\n otherObjectType: string,\n ) => {\n if (apiName) {\n ret[apiName] = {\n apiName,\n directedLinkTypeRid: {\n linkTypeRid: l.rid,\n linkSide,\n },\n otherObjectType,\n };\n }\n };\n if (l.definition.type === \"oneToMany\") {\n const {\n oneToMany: {\n objectTypeRidManySide,\n manyToOneLinkMetadata,\n objectTypeRidOneSide,\n oneToManyLinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidManySide === objectTypeRid) {\n helper(\n manyToOneLinkMetadata,\n \"TARGET\",\n objectTypeRidOneSide,\n );\n }\n if (objectTypeRidOneSide === objectTypeRid) {\n helper(\n oneToManyLinkMetadata,\n \"SOURCE\",\n objectTypeRidManySide,\n );\n }\n } else if (l.definition.type === \"manyToMany\") {\n const {\n manyToMany: {\n objectTypeRidA,\n objectTypeAToBLinkMetadata,\n objectTypeRidB,\n objectTypeBToALinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidA === objectTypeRid) {\n helper(\n objectTypeAToBLinkMetadata,\n \"SOURCE\",\n objectTypeRidB,\n );\n }\n\n if (objectTypeRidB === objectTypeRid) {\n helper(\n objectTypeBToALinkMetadata,\n \"TARGET\",\n objectTypeRidA,\n );\n }\n }\n }\n\n return ret;\n });\n\n #getConjureObjectType = strongMemoAsync(async (objectTypeRid: string) => {\n this.#logger?.debug(`getConjureObjectType(${objectTypeRid})`);\n const body = {\n datasourceTypes: [],\n objectTypes: [{\n identifier: {\n type: \"objectTypeRid\" as const,\n objectTypeRid: objectTypeRid,\n },\n versionReference: {\n type: \"ontologyVersion\" as const,\n ontologyVersion: await this.ontologyVersion(\"\"),\n },\n }],\n linkTypes: [],\n sharedPropertyTypes: [],\n interfaceTypes: [],\n typeGroups: [],\n loadRedacted: false,\n includeObjectTypeCount: undefined,\n includeObjectTypesWithoutSearchableDatasources: true,\n includeEntityMetadata: undefined,\n actionTypes: [],\n includeTypeGroupEntitiesCount: undefined,\n entityMetadata: undefined,\n };\n const entities = await bulkLoadOntologyEntities(this.#ctx, undefined, body);\n invariant(\n entities.objectTypes[0]?.objectType,\n \"object type should be loaded\",\n );\n return entities.objectTypes[0].objectType;\n });\n\n ontologyVersion: (key: string) => Promise<string> = strongMemoAsync(async (\n _: string,\n ) => getOntologyVersionForRid(this.#ctx, await this.#client.ontologyRid));\n}\n\nexport const metadataCacheClient: (\n key: MinimalClient,\n) => Promise<MetadataClient> = weakMemoAsync(\n (client: MinimalClient) => Promise.resolve(new MetadataClient(client)),\n);\n\nfunction createObjectPropertyMapping(\n conjureOT: ObjectType,\n): ObjectPropertyMapping {\n invariant(\n conjureOT.primaryKeys.length === 1,\n `only one primary key supported, got ${conjureOT.primaryKeys.length}`,\n );\n const pkRid = conjureOT.primaryKeys[0];\n\n const pkProperty = Object.values(conjureOT.propertyTypes).find(a =>\n a.rid === pkRid\n );\n if (!pkProperty) {\n throw new Error(`Could not find PK property by rid: ${pkRid}`);\n }\n\n const propertyIdToApiNameMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.id, property.apiName!];\n },\n ),\n );\n\n const propertyApiNameToIdMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.apiName!, property.id];\n },\n ),\n );\n\n return {\n apiName: conjureOT.apiName!,\n id: conjureOT.id,\n propertyIdToApiNameMapping,\n propertyApiNameToIdMapping,\n pk: {\n rid: pkRid,\n apiName: pkProperty.apiName!,\n type: pkProperty.type,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
function noop() {}
|
|
17
|
+
export function noop() {}
|
|
18
18
|
const levels = {
|
|
19
19
|
trace: 10,
|
|
20
20
|
debug: 20,
|
|
@@ -29,6 +29,12 @@ export class BaseLogger {
|
|
|
29
29
|
this.bindings = bindings;
|
|
30
30
|
this.options = options;
|
|
31
31
|
this.#factory = factory;
|
|
32
|
+
for (const k of ["trace", "debug", "info", "warn", "error", "fatal"]) {
|
|
33
|
+
if (this.options?.level && !this.isLevelEnabled(k)) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
this[k] = this.createLogMethod(k, bindings);
|
|
37
|
+
}
|
|
32
38
|
}
|
|
33
39
|
trace = noop;
|
|
34
40
|
debug = noop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLogger.js","names":["noop","levels","trace","debug","info","warn","error","fatal","BaseLogger","factory","constructor","bindings","options","
|
|
1
|
+
{"version":3,"file":"BaseLogger.js","names":["noop","levels","trace","debug","info","warn","error","fatal","BaseLogger","factory","constructor","bindings","options","k","level","isLevelEnabled","createLogMethod","child","msgPrefix","filter","x","join","ourLevel"],"sources":["BaseLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport type { LogFn } from \"./Logger.js\";\n\nexport function noop(): any {\n}\n\ninterface LoggerConstructor {\n new(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger;\n}\n\nconst levels = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60,\n};\n\nexport abstract class BaseLogger implements Logger {\n protected bindings: Record<string, any>;\n protected options: { level?: string; msgPrefix?: string } | undefined;\n #factory: LoggerConstructor;\n\n constructor(\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string } = {},\n factory: LoggerConstructor,\n ) {\n this.bindings = bindings;\n this.options = options;\n this.#factory = factory;\n\n for (\n const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"] as const\n ) {\n if (this.options?.level && !this.isLevelEnabled(k)) {\n continue;\n }\n this[k] = this.createLogMethod(k, bindings);\n }\n }\n\n protected abstract createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn;\n\n trace: LogFn = noop;\n debug: LogFn = noop;\n warn: LogFn = noop;\n info: LogFn = noop;\n error: LogFn = noop;\n fatal: LogFn = noop;\n\n child(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger {\n return new this.#factory({\n ...this.bindings,\n ...bindings,\n }, {\n level: (options ?? this.options)?.level,\n msgPrefix: [this.options?.msgPrefix, options?.msgPrefix].filter(x => x)\n .join(\" \"),\n });\n }\n\n isLevelEnabled(level: string): boolean {\n const ourLevel = (this.options?.level ?? \"info\") as keyof typeof levels;\n\n return level in levels && ourLevel in levels\n && levels[level as keyof typeof levels] >= levels[ourLevel];\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,IAAIA,CAAA,EAAQ,CAC5B;AASA,MAAMC,MAAM,GAAG;EACbC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAeC,UAAU,CAAmB;EAGjD,CAACC,OAAO;EAERC,WAAWA,CACTC,QAA6B,EAC7BC,OAA+C,GAAG,CAAC,CAAC,EACpDH,OAA0B,EAC1B;IACA,IAAI,CAACE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC,CAACH,OAAO,GAAGA,OAAO;IAEvB,KACE,MAAMI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC/D;MACA,IAAI,IAAI,CAACD,OAAO,EAAEE,KAAK,IAAI,CAAC,IAAI,CAACC,cAAc,CAACF,CAAC,CAAC,EAAE;QAClD;MACF;MACA,IAAI,CAACA,CAAC,CAAC,GAAG,IAAI,CAACG,eAAe,CAACH,CAAC,EAAEF,QAAQ,CAAC;IAC7C;EACF;EAOAT,KAAK,GAAUF,IAAI;EACnBG,KAAK,GAAUH,IAAI;EACnBK,IAAI,GAAUL,IAAI;EAClBI,IAAI,GAAUJ,IAAI;EAClBM,KAAK,GAAUN,IAAI;EACnBO,KAAK,GAAUP,IAAI;EAEnBiB,KAAKA,CACHN,QAA6B,EAC7BC,OAAgD,EACxC;IACR,OAAO,IAAI,IAAI,CAAC,CAACH,OAAO,CAAC;MACvB,GAAG,IAAI,CAACE,QAAQ;MAChB,GAAGA;IACL,CAAC,EAAE;MACDG,KAAK,EAAE,CAACF,OAAO,IAAI,IAAI,CAACA,OAAO,GAAGE,KAAK;MACvCI,SAAS,EAAE,CAAC,IAAI,CAACN,OAAO,EAAEM,SAAS,EAAEN,OAAO,EAAEM,SAAS,CAAC,CAACC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAAC,CACpEC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;EACJ;EAEAN,cAAcA,CAACD,KAAa,EAAW;IACrC,MAAMQ,QAAQ,GAAI,IAAI,CAACV,OAAO,EAAEE,KAAK,IAAI,MAA8B;IAEvE,OAAOA,KAAK,IAAIb,MAAM,IAAIqB,QAAQ,IAAIrB,MAAM,IACvCA,MAAM,CAACa,KAAK,CAAwB,IAAIb,MAAM,CAACqB,QAAQ,CAAC;EAC/D;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { BaseLogger } from "./BaseLogger.js";
|
|
18
|
+
function createStyle({
|
|
19
|
+
color
|
|
20
|
+
}) {
|
|
21
|
+
return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;
|
|
22
|
+
}
|
|
23
|
+
const levelStyles = {
|
|
24
|
+
debug: createStyle({
|
|
25
|
+
color: "LightBlue"
|
|
26
|
+
}),
|
|
27
|
+
error: createStyle({
|
|
28
|
+
color: "red"
|
|
29
|
+
}),
|
|
30
|
+
fatal: createStyle({
|
|
31
|
+
color: "red"
|
|
32
|
+
}),
|
|
33
|
+
info: createStyle({
|
|
34
|
+
color: "green"
|
|
35
|
+
}),
|
|
36
|
+
trace: createStyle({
|
|
37
|
+
color: "gray"
|
|
38
|
+
}),
|
|
39
|
+
warn: createStyle({
|
|
40
|
+
color: "orange"
|
|
41
|
+
})
|
|
42
|
+
};
|
|
43
|
+
export class BrowserLogger extends BaseLogger {
|
|
44
|
+
constructor(bindings = {}, options = {}) {
|
|
45
|
+
super(bindings, {
|
|
46
|
+
...options,
|
|
47
|
+
level: options.level ?? "error"
|
|
48
|
+
}, BrowserLogger);
|
|
49
|
+
}
|
|
50
|
+
createLogMethod(name, bindings) {
|
|
51
|
+
const msgs = [`%c${name}%c`];
|
|
52
|
+
const styles = [levelStyles[name], ""];
|
|
53
|
+
if (this.options?.msgPrefix) {
|
|
54
|
+
msgs.push(`%c${this.options.msgPrefix}%c`);
|
|
55
|
+
styles.push("font-style: italic; color: gray", "");
|
|
56
|
+
}
|
|
57
|
+
if (typeof bindings === "object" && "methodName" in bindings) {
|
|
58
|
+
msgs.push(`%c.${bindings.methodName}()%c`);
|
|
59
|
+
styles.push("font-style: italic;color: orchid", "");
|
|
60
|
+
}
|
|
61
|
+
return (...args) => {
|
|
62
|
+
// eslint-disable-next-line no-console
|
|
63
|
+
console[name === "fatal" ? "error" : name](msgs.join(" "), ...styles, ...args);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=BrowserLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserLogger.js","names":["BaseLogger","createStyle","color","levelStyles","debug","error","fatal","info","trace","warn","BrowserLogger","constructor","bindings","options","level","createLogMethod","name","msgs","styles","msgPrefix","push","methodName","args","console","join"],"sources":["BrowserLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn } from \"./Logger.js\";\n\nfunction createStyle({ color }: { color: string }) {\n return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;\n}\n\nconst levelStyles = {\n debug: createStyle({\n color: \"LightBlue\",\n }),\n error: createStyle({\n color: \"red\",\n }),\n fatal: createStyle({\n color: \"red\",\n }),\n info: createStyle({\n color: \"green\",\n }),\n trace: createStyle({\n color: \"gray\",\n }),\n warn: createStyle({\n color: \"orange\",\n }),\n};\n\nexport class BrowserLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n BrowserLogger,\n );\n }\n\n protected createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn {\n const msgs: string[] = [`%c${name}%c`];\n const styles: string[] = [levelStyles[name], \"\"];\n\n if (this.options?.msgPrefix) {\n msgs.push(`%c${this.options.msgPrefix}%c`);\n styles.push(\n \"font-style: italic; color: gray\",\n \"\",\n );\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`%c.${bindings.methodName}()%c`);\n styles.push(\n \"font-style: italic;color: orchid\",\n \"\",\n );\n }\n\n return (...args: any[]): any => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](\n msgs.join(\" \"),\n ...styles,\n ...args,\n );\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,UAAU,QAAQ,iBAAiB;AAG5C,SAASC,WAAWA,CAAC;EAAEC;AAAyB,CAAC,EAAE;EACjD,OAAO,UAAUA,KAAK,uBAAuBA,KAAK,qCAAqC;AACzF;AAEA,MAAMC,WAAW,GAAG;EAClBC,KAAK,EAAEH,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFG,KAAK,EAAEJ,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFI,KAAK,EAAEL,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFK,IAAI,EAAEN,WAAW,CAAC;IAChBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFM,KAAK,EAAEP,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFO,IAAI,EAAER,WAAW,CAAC;IAChBC,KAAK,EAAE;EACT,CAAC;AACH,CAAC;AAED,OAAO,MAAMQ,aAAa,SAASV,UAAU,CAAmB;EAC9DW,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,aACF,CAAC;EACH;EAEUK,eAAeA,CACvBC,IAA6D,EAC7DJ,QAA6B,EACtB;IACP,MAAMK,IAAc,GAAG,CAAC,KAAKD,IAAI,IAAI,CAAC;IACtC,MAAME,MAAgB,GAAG,CAACf,WAAW,CAACa,IAAI,CAAC,EAAE,EAAE,CAAC;IAEhD,IAAI,IAAI,CAACH,OAAO,EAAEM,SAAS,EAAE;MAC3BF,IAAI,CAACG,IAAI,CAAC,KAAK,IAAI,CAACP,OAAO,CAACM,SAAS,IAAI,CAAC;MAC1CD,MAAM,CAACE,IAAI,CACT,iCAAiC,EACjC,EACF,CAAC;IACH;IAEA,IAAI,OAAOR,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACG,IAAI,CAAC,MAAMR,QAAQ,CAACS,UAAU,MAAM,CAAC;MAC1CH,MAAM,CAACE,IAAI,CACT,kCAAkC,EAClC,EACF,CAAC;IACH;IAEA,OAAO,CAAC,GAAGE,IAAW,KAAU;MAC9B;MACAC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CACxCC,IAAI,CAACO,IAAI,CAAC,GAAG,CAAC,EACd,GAAGN,MAAM,EACT,GAAGI,IACL,CAAC;IACH,CAAC;EACH;AACF","ignoreList":[0]}
|
|
@@ -15,27 +15,25 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { BaseLogger } from "./BaseLogger.js";
|
|
18
|
-
function createLogMethod(name, bindings, options) {
|
|
19
|
-
const msgs = [name];
|
|
20
|
-
if (options?.msgPrefix) {
|
|
21
|
-
msgs.push(options.msgPrefix);
|
|
22
|
-
}
|
|
23
|
-
if (typeof bindings === "object" && "methodName" in bindings) {
|
|
24
|
-
msgs.push(`.${bindings.methodName}()`);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// eslint-disable-next-line no-console
|
|
28
|
-
return console[name === "fatal" ? "error" : name].bind(console, msgs.join(" "));
|
|
29
|
-
}
|
|
30
18
|
export class MinimalLogger extends BaseLogger {
|
|
31
19
|
constructor(bindings = {}, options = {}) {
|
|
32
20
|
super(bindings, {
|
|
33
21
|
...options,
|
|
34
22
|
level: options.level ?? "error"
|
|
35
23
|
}, MinimalLogger);
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
}
|
|
25
|
+
createLogMethod(name, bindings) {
|
|
26
|
+
const msgs = [name];
|
|
27
|
+
if (this.options?.msgPrefix) {
|
|
28
|
+
msgs.push(this.options.msgPrefix);
|
|
29
|
+
}
|
|
30
|
+
if (typeof bindings === "object" && "methodName" in bindings) {
|
|
31
|
+
msgs.push(`.${bindings.methodName}()`);
|
|
38
32
|
}
|
|
33
|
+
return (...args) => {
|
|
34
|
+
// eslint-disable-next-line no-console
|
|
35
|
+
console[name === "fatal" ? "error" : name](msgs.join(" "), ...args);
|
|
36
|
+
};
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
39
|
//# sourceMappingURL=MinimalLogger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinimalLogger.js","names":["BaseLogger","
|
|
1
|
+
{"version":3,"file":"MinimalLogger.js","names":["BaseLogger","MinimalLogger","constructor","bindings","options","level","createLogMethod","name","msgs","msgPrefix","push","methodName","args","console","join"],"sources":["MinimalLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn, Logger } from \"./Logger.js\";\n\nexport class MinimalLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n MinimalLogger,\n );\n }\n\n createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn {\n const msgs: string[] = [name];\n\n if (this.options?.msgPrefix) {\n msgs.push(this.options.msgPrefix);\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`.${bindings.methodName}()`);\n }\n\n return (...args: any[]) => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](msgs.join(\" \"), ...args);\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAQ,iBAAiB;AAG5C,OAAO,MAAMC,aAAa,SAASD,UAAU,CAAmB;EAC9DE,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,aACF,CAAC;EACH;EAEAK,eAAeA,CACbC,IAA6D,EAC7DJ,QAA6B,EACtB;IACP,MAAMK,IAAc,GAAG,CAACD,IAAI,CAAC;IAE7B,IAAI,IAAI,CAACH,OAAO,EAAEK,SAAS,EAAE;MAC3BD,IAAI,CAACE,IAAI,CAAC,IAAI,CAACN,OAAO,CAACK,SAAS,CAAC;IACnC;IAEA,IAAI,OAAON,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACE,IAAI,CAAC,IAAIP,QAAQ,CAACQ,UAAU,IAAI,CAAC;IACxC;IAEA,OAAO,CAAC,GAAGC,IAAW,KAAK;MACzB;MACAC,OAAO,CAACN,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACC,IAAI,CAACM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAGF,IAAI,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[0]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
18
|
+
import { MinimalLogger } from "./MinimalLogger.js";
|
|
19
|
+
const orderedLevels = ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
20
|
+
describe(MinimalLogger, () => {
|
|
21
|
+
const consoleMocks = Object.fromEntries(["log", "error", "warn", "trace"].map(name => [name, vi.spyOn(console, name)]));
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
for (const consoleMock of Object.values(consoleMocks)) {
|
|
24
|
+
consoleMock.mockClear();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
it("does not debug log by default", () => {
|
|
28
|
+
const logger = new MinimalLogger();
|
|
29
|
+
logger.debug("hi");
|
|
30
|
+
for (const consoleMock of Object.values(consoleMocks)) {
|
|
31
|
+
expect(consoleMock).not.toHaveBeenCalled();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
it("can log", () => {
|
|
35
|
+
new MinimalLogger({}, {});
|
|
36
|
+
});
|
|
37
|
+
describe.for(orderedLevels)("For level %s", level => {
|
|
38
|
+
const idx = orderedLevels.findIndex(a => a === level);
|
|
39
|
+
expect(idx).toBeGreaterThan(-1);
|
|
40
|
+
const shouldNotOutput = orderedLevels.slice(0, idx);
|
|
41
|
+
const shouldOutput = orderedLevels.slice(idx);
|
|
42
|
+
const x = [...shouldNotOutput.map(x => [x, false]), ...shouldOutput.map(x => [x, true])];
|
|
43
|
+
it.for(x)("It should log for %s? %s", ([levelToCheck, shouldLog]) => {
|
|
44
|
+
const logger = new MinimalLogger({}, {
|
|
45
|
+
level
|
|
46
|
+
});
|
|
47
|
+
logger[levelToCheck]("logging");
|
|
48
|
+
let calls = 0;
|
|
49
|
+
for (const consoleMock of Object.values(consoleMocks)) {
|
|
50
|
+
calls += consoleMock.mock.calls.length;
|
|
51
|
+
}
|
|
52
|
+
if (shouldLog) {
|
|
53
|
+
expect(calls === 1, `Should log one time but got ${calls}`);
|
|
54
|
+
} else {
|
|
55
|
+
expect(calls === 0, "should not call console.thing");
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=MinimalLogger.test.js.map
|