@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.
Files changed (80) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/browser/__unstable/ConjureSupport.js.map +1 -1
  3. package/build/browser/logger/BaseLogger.js +7 -1
  4. package/build/browser/logger/BaseLogger.js.map +1 -1
  5. package/build/browser/logger/BrowserLogger.js +67 -0
  6. package/build/browser/logger/BrowserLogger.js.map +1 -0
  7. package/build/browser/logger/MinimalLogger.js +12 -14
  8. package/build/browser/logger/MinimalLogger.js.map +1 -1
  9. package/build/browser/logger/MinimalLogger.test.js +60 -0
  10. package/build/browser/logger/MinimalLogger.test.js.map +1 -0
  11. package/build/browser/logger/TestLogger.js +3 -6
  12. package/build/browser/logger/TestLogger.js.map +1 -1
  13. package/build/browser/object/convertWireToOsdkObjects.js +0 -5
  14. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  15. package/build/browser/object/fetchPage.js +2 -2
  16. package/build/browser/object/fetchPage.js.map +1 -1
  17. package/build/browser/ontology/loadFullObjectMetadata.js +0 -1
  18. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  19. package/build/browser/public/internal.js +2 -0
  20. package/build/browser/public/internal.js.map +1 -1
  21. package/build/browser/util/UserAgent.js +1 -1
  22. package/build/browser/util/extractRdpDefinition.js +74 -21
  23. package/build/browser/util/extractRdpDefinition.js.map +1 -1
  24. package/build/browser/util/extractRdpDefinition.test.js +93 -4
  25. package/build/browser/util/extractRdpDefinition.test.js.map +1 -1
  26. package/build/cjs/Logger-a5UcHtrk.d.cts +19 -0
  27. package/build/cjs/{chunk-VT3UM6EP.cjs → chunk-6KYD7ZWT.cjs} +83 -14
  28. package/build/cjs/chunk-6KYD7ZWT.cjs.map +1 -0
  29. package/build/cjs/{chunk-USHAX4EP.cjs → chunk-KAJABLKV.cjs} +94 -37
  30. package/build/cjs/chunk-KAJABLKV.cjs.map +1 -0
  31. package/build/cjs/index.cjs +47 -114
  32. package/build/cjs/index.cjs.map +1 -1
  33. package/build/cjs/index.d.cts +2 -19
  34. package/build/cjs/public/internal.cjs +61 -6
  35. package/build/cjs/public/internal.cjs.map +1 -1
  36. package/build/cjs/public/internal.d.cts +50 -2
  37. package/build/cjs/public/unstable-do-not-use.cjs +8 -8
  38. package/build/esm/__unstable/ConjureSupport.js.map +1 -1
  39. package/build/esm/logger/BaseLogger.js +7 -1
  40. package/build/esm/logger/BaseLogger.js.map +1 -1
  41. package/build/esm/logger/BrowserLogger.js +67 -0
  42. package/build/esm/logger/BrowserLogger.js.map +1 -0
  43. package/build/esm/logger/MinimalLogger.js +12 -14
  44. package/build/esm/logger/MinimalLogger.js.map +1 -1
  45. package/build/esm/logger/MinimalLogger.test.js +60 -0
  46. package/build/esm/logger/MinimalLogger.test.js.map +1 -0
  47. package/build/esm/logger/TestLogger.js +3 -6
  48. package/build/esm/logger/TestLogger.js.map +1 -1
  49. package/build/esm/object/convertWireToOsdkObjects.js +0 -5
  50. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  51. package/build/esm/object/fetchPage.js +2 -2
  52. package/build/esm/object/fetchPage.js.map +1 -1
  53. package/build/esm/ontology/loadFullObjectMetadata.js +0 -1
  54. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  55. package/build/esm/public/internal.js +2 -0
  56. package/build/esm/public/internal.js.map +1 -1
  57. package/build/esm/util/UserAgent.js +1 -1
  58. package/build/esm/util/extractRdpDefinition.js +74 -21
  59. package/build/esm/util/extractRdpDefinition.js.map +1 -1
  60. package/build/esm/util/extractRdpDefinition.test.js +93 -4
  61. package/build/esm/util/extractRdpDefinition.test.js.map +1 -1
  62. package/build/types/__unstable/ConjureSupport.d.ts +2 -2
  63. package/build/types/logger/BaseLogger.d.ts +4 -1
  64. package/build/types/logger/BaseLogger.d.ts.map +1 -1
  65. package/build/types/logger/BrowserLogger.d.ts +10 -0
  66. package/build/types/logger/BrowserLogger.d.ts.map +1 -0
  67. package/build/types/logger/MinimalLogger.d.ts +2 -1
  68. package/build/types/logger/MinimalLogger.d.ts.map +1 -1
  69. package/build/types/logger/MinimalLogger.test.d.ts +1 -0
  70. package/build/types/logger/MinimalLogger.test.d.ts.map +1 -0
  71. package/build/types/logger/TestLogger.d.ts +2 -2
  72. package/build/types/logger/TestLogger.d.ts.map +1 -1
  73. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  74. package/build/types/public/internal.d.ts +2 -0
  75. package/build/types/public/internal.d.ts.map +1 -1
  76. package/build/types/util/extractRdpDefinition.d.ts +1 -1
  77. package/build/types/util/extractRdpDefinition.d.ts.map +1 -1
  78. package/package.json +11 -11
  79. package/build/cjs/chunk-USHAX4EP.cjs.map +0 -1
  80. package/build/cjs/chunk-VT3UM6EP.cjs.map +0 -1
@@ -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, type Logger, type PlatformClient, type ResultOrError, createAttachmentUpload, createClient, createObjectSpecifierFromPrimaryKey, createPlatformClient, extractDate, extractDateInLocalTime, extractDateInUTC };
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 chunkVT3UM6EP_cjs = require('../chunk-VT3UM6EP.cjs');
4
- var chunkUSHAX4EP_cjs = require('../chunk-USHAX4EP.cjs');
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 chunkUSHAX4EP_cjs.OntologyObjectSet_exports.createTemporary(client, await client[chunkUSHAX4EP_cjs.additionalContext].ontologyRid, {
9
- objectSet: chunkVT3UM6EP_cjs.getWireObjectSet(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 chunkVT3UM6EP_cjs.createObjectSet(definition, client[chunkUSHAX4EP_cjs.additionalContext], {
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 chunkVT3UM6EP_cjs.hydrateAttachmentFromRid; }
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
- export { createAndFetchTempObjectSetRid, hydrateAttachmentFromRid, hydrateObjectSetFromRid };
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 chunkUSHAX4EP_cjs = require('../chunk-USHAX4EP.cjs');
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[chunkUSHAX4EP_cjs.additionalContext].objectFactory2(store.client[chunkUSHAX4EP_cjs.additionalContext], [{
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[chunkUSHAX4EP_cjs.additionalContext].logger;
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[chunkUSHAX4EP_cjs.additionalContext].logger : store.client[chunkUSHAX4EP_cjs.additionalContext].logger?.child({}, {
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[chunkUSHAX4EP_cjs.additionalContext].logger?.child({}, {
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[chunkUSHAX4EP_cjs.additionalContext].logger?.child({}, {
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[chunkUSHAX4EP_cjs.additionalContext].logger?.child({}, {
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 chunkUSHAX4EP_cjs.augment; }
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","child","level","msgPrefix","filter","x","join","isLevelEnabled","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 { LogFn, Logger } from \"./Logger.js\";\n\nfunction noop() {\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\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;;AAIA,SAASA,IAAIA,CAAA,EAAG,CAChB;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;EACzB;EAEAP,KAAK,GAAUF,IAAI;EACnBG,KAAK,GAAUH,IAAI;EACnBK,IAAI,GAAUL,IAAI;EAClBI,IAAI,GAAUJ,IAAI;EAClBM,KAAK,GAAUN,IAAI;EACnBO,KAAK,GAAUP,IAAI;EAEnBa,KAAKA,CACHF,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;MACvCC,SAAS,EAAE,CAAC,IAAI,CAACH,OAAO,EAAEG,SAAS,EAAEH,OAAO,EAAEG,SAAS,CAAC,CAACC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAAC,CACpEC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;EACJ;EAEAC,cAAcA,CAACL,KAAa,EAAW;IACrC,MAAMM,QAAQ,GAAI,IAAI,CAACR,OAAO,EAAEE,KAAK,IAAI,MAA8B;IAEvE,OAAOA,KAAK,IAAIb,MAAM,IAAImB,QAAQ,IAAInB,MAAM,IACvCA,MAAM,CAACa,KAAK,CAAwB,IAAIb,MAAM,CAACmB,QAAQ,CAAC;EAC/D;AACF","ignoreList":[]}
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
- for (const k of ["trace", "debug", "info", "warn", "error", "fatal"]) {
37
- this[k] = createLogMethod(k, bindings, options);
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","createLogMethod","name","bindings","options","msgs","msgPrefix","push","methodName","console","bind","join","MinimalLogger","constructor","level","k"],"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\nfunction createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string },\n): LogFn {\n const msgs: string[] = [name];\n\n if (options?.msgPrefix) {\n msgs.push(options.msgPrefix);\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`.${bindings.methodName}()`);\n }\n\n // eslint-disable-next-line no-console\n return console[name === \"fatal\" ? \"error\" : name].bind(\n console,\n msgs.join(\" \"),\n );\n}\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 for (\n const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"] as const\n ) {\n this[k] = createLogMethod(k, bindings, options);\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,SAASC,eAAeA,CACtBC,IAA6D,EAC7DC,QAA6B,EAC7BC,OAA+C,EACxC;EACP,MAAMC,IAAc,GAAG,CAACH,IAAI,CAAC;EAE7B,IAAIE,OAAO,EAAEE,SAAS,EAAE;IACtBD,IAAI,CAACE,IAAI,CAACH,OAAO,CAACE,SAAS,CAAC;EAC9B;EAEA,IAAI,OAAOH,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;IAC5DE,IAAI,CAACE,IAAI,CAAC,IAAIJ,QAAQ,CAACK,UAAU,IAAI,CAAC;EACxC;;EAEA;EACA,OAAOC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACQ,IAAI,CACpDD,OAAO,EACPJ,IAAI,CAACM,IAAI,CAAC,GAAG,CACf,CAAC;AACH;AAEA,OAAO,MAAMC,aAAa,SAASZ,UAAU,CAAmB;EAC9Da,WAAWA,CACTV,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEU,KAAK,EAAEV,OAAO,CAACU,KAAK,IAAI;IAAQ,CAAC,EAC/CF,aACF,CAAC;IAED,KACE,MAAMG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC/D;MACA,IAAI,CAACA,CAAC,CAAC,GAAGd,eAAe,CAACc,CAAC,EAAEZ,QAAQ,EAAEC,OAAO,CAAC;IACjD;EACF;AACF","ignoreList":[]}
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