@dbx-tools/appkit 0.9.64 → 0.9.67
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/index.ts +3 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +3 -2
- package/lib/src/request-tags.d.ts +9 -0
- package/lib/src/request-tags.js +28 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -7
- package/src/request-tags.ts +39 -0
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.67";
|
|
7
7
|
export * as appkit from "./src/appkit.ts";
|
|
8
8
|
export * as brandContext from "./src/brand-context.ts";
|
|
9
9
|
export * as bundle from "./src/bundle.ts";
|
|
@@ -17,6 +17,7 @@ export * as pgaddress from "./src/pgaddress.ts";
|
|
|
17
17
|
export * as pluginExecution from "./src/plugin-execution.ts";
|
|
18
18
|
export * as pluginRegistry from "./src/plugin-registry.ts";
|
|
19
19
|
export * as provision from "./src/provision.ts";
|
|
20
|
+
export * as requestTags from "./src/request-tags.ts";
|
|
20
21
|
export * as toolProvider from "./src/tool-provider.ts";
|
|
21
22
|
export * as toolkitEntries from "./src/toolkit-entries.ts";
|
|
22
23
|
export type { AutoConfigureMode, CreateAppConfig, ExecutionContextLike, WorkspaceClientLike } from "./src/appkit.ts";
|
|
@@ -35,4 +36,5 @@ export { SSL_MODES } from "./src/pgaddress.ts";
|
|
|
35
36
|
export type { SslMode, ParsedAddress, LakebaseConnectionInputs } from "./src/pgaddress.ts";
|
|
36
37
|
export type { RunPluginExecutionOptions } from "./src/plugin-execution.ts";
|
|
37
38
|
export type { PluginContextLike } from "./src/plugin-registry.ts";
|
|
39
|
+
export type { RequestTagValue } from "./src/request-tags.ts";
|
|
38
40
|
export { ToolRegistryPlugin } from "./src/tool-provider.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.67";
|
|
3
3
|
export * as appkit from "./src/appkit.ts";
|
|
4
4
|
export * as brandContext from "./src/brand-context.ts";
|
|
5
5
|
export * as bundle from "./src/bundle.ts";
|
|
@@ -13,6 +13,7 @@ export * as pgaddress from "./src/pgaddress.ts";
|
|
|
13
13
|
export * as pluginExecution from "./src/plugin-execution.ts";
|
|
14
14
|
export * as pluginRegistry from "./src/plugin-registry.ts";
|
|
15
15
|
export * as provision from "./src/provision.ts";
|
|
16
|
+
export * as requestTags from "./src/request-tags.ts";
|
|
16
17
|
export * as toolProvider from "./src/tool-provider.ts";
|
|
17
18
|
export * as toolkitEntries from "./src/toolkit-entries.ts";
|
|
18
19
|
export type { AutoConfigureMode, CreateAppConfig, ExecutionContextLike, WorkspaceClientLike } from "./src/appkit.ts";
|
|
@@ -31,4 +32,5 @@ export { SSL_MODES } from "./src/pgaddress.ts";
|
|
|
31
32
|
export type { SslMode, ParsedAddress, LakebaseConnectionInputs } from "./src/pgaddress.ts";
|
|
32
33
|
export type { RunPluginExecutionOptions } from "./src/plugin-execution.ts";
|
|
33
34
|
export type { PluginContextLike } from "./src/plugin-registry.ts";
|
|
35
|
+
export type { RequestTagValue } from "./src/request-tags.ts";
|
|
34
36
|
export { ToolRegistryPlugin } from "./src/tool-provider.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.67";
|
|
6
6
|
export * as appkit from "./src/appkit.js";
|
|
7
7
|
export * as brandContext from "./src/brand-context.js";
|
|
8
8
|
export * as bundle from "./src/bundle.js";
|
|
@@ -16,6 +16,7 @@ export * as pgaddress from "./src/pgaddress.js";
|
|
|
16
16
|
export * as pluginExecution from "./src/plugin-execution.js";
|
|
17
17
|
export * as pluginRegistry from "./src/plugin-registry.js";
|
|
18
18
|
export * as provision from "./src/provision.js";
|
|
19
|
+
export * as requestTags from "./src/request-tags.js";
|
|
19
20
|
export * as toolProvider from "./src/tool-provider.js";
|
|
20
21
|
export * as toolkitEntries from "./src/toolkit-entries.js";
|
|
21
22
|
export { bundleAppResourceSchema, flattenAppYamlEnv, flattenAppEnv, getBundlePath } from "./src/bundle.js";
|
|
@@ -24,4 +25,4 @@ export { ACCESS_TOKEN_HEADER, USER_ID_HEADER, USER_EMAIL_HEADER, IDENTITY_MODES,
|
|
|
24
25
|
export { LifecycleBridgePlugin, lifecycleBridge } from "./src/interceptor.js";
|
|
25
26
|
export { SSL_MODES } from "./src/pgaddress.js";
|
|
26
27
|
export { ToolRegistryPlugin } from "./src/tool-provider.js";
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLGdCQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssZUFBZSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sS0FBSyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEksT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUsvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuNjdcIjtcbmV4cG9ydCAqIGFzIGFwcGtpdCBmcm9tIFwiLi9zcmMvYXBwa2l0LnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZENvbnRleHQgZnJvbSBcIi4vc3JjL2JyYW5kLWNvbnRleHQudHNcIjtcbmV4cG9ydCAqIGFzIGJ1bmRsZSBmcm9tIFwiLi9zcmMvYnVuZGxlLnRzXCI7XG5leHBvcnQgKiBhcyBjaGlsZFByb2Nlc3MgZnJvbSBcIi4vc3JjL2NoaWxkLXByb2Nlc3MudHNcIjtcbmV4cG9ydCAqIGFzIGRhdGFicmlja3MgZnJvbSBcIi4vc3JjL2RhdGFicmlja3MudHNcIjtcbmV4cG9ydCAqIGFzIGlkZW50aXR5IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0ICogYXMgaW50ZXJjZXB0b3IgZnJvbSBcIi4vc3JjL2ludGVyY2VwdG9yLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZVJlc29sdmVyIGZyb20gXCIuL3NyYy9sYWtlYmFzZS1yZXNvbHZlci50c1wiO1xuZXhwb3J0ICogYXMgbWlncmF0aW9uIGZyb20gXCIuL3NyYy9taWdyYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIHBnYWRkcmVzcyBmcm9tIFwiLi9zcmMvcGdhZGRyZXNzLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW5FeGVjdXRpb24gZnJvbSBcIi4vc3JjL3BsdWdpbi1leGVjdXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpblJlZ2lzdHJ5IGZyb20gXCIuL3NyYy9wbHVnaW4tcmVnaXN0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHByb3Zpc2lvbiBmcm9tIFwiLi9zcmMvcHJvdmlzaW9uLnRzXCI7XG5leHBvcnQgKiBhcyByZXF1ZXN0VGFncyBmcm9tIFwiLi9zcmMvcmVxdWVzdC10YWdzLnRzXCI7XG5leHBvcnQgKiBhcyB0b29sUHJvdmlkZXIgZnJvbSBcIi4vc3JjL3Rvb2wtcHJvdmlkZXIudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2xraXRFbnRyaWVzIGZyb20gXCIuL3NyYy90b29sa2l0LWVudHJpZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0b0NvbmZpZ3VyZU1vZGUsIENyZWF0ZUFwcENvbmZpZywgRXhlY3V0aW9uQ29udGV4dExpa2UsIFdvcmtzcGFjZUNsaWVudExpa2UgfSBmcm9tIFwiLi9zcmMvYXBwa2l0LnRzXCI7XG5leHBvcnQgeyBidW5kbGVBcHBSZXNvdXJjZVNjaGVtYSwgZmxhdHRlbkFwcFlhbWxFbnYsIGZsYXR0ZW5BcHBFbnYsIGdldEJ1bmRsZVBhdGggfSBmcm9tIFwiLi9zcmMvYnVuZGxlLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1bmRsZVZhbGlkYXRlSnNvbiwgQ29uZmlnRmlsZSwgQ29uZmlnTWFwVmFsdWUsIENvbmZpZ1NvdXJjZSwgUmVzb2x2ZUNvbmZpZ1ZhbHVlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9idW5kbGUudHNcIjtcbmV4cG9ydCB7IEFwcEtpdENoaWxkUHJvY2VzcyB9IGZyb20gXCIuL3NyYy9jaGlsZC1wcm9jZXNzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFwcEtpdFNwYXduQXJncywgQXBwS2l0Q2hpbGRQcm9jZXNzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9jaGlsZC1wcm9jZXNzLnRzXCI7XG5leHBvcnQgdHlwZSB7IENvbnRleHRMaWtlIH0gZnJvbSBcIi4vc3JjL2RhdGFicmlja3MudHNcIjtcbmV4cG9ydCB7IEFDQ0VTU19UT0tFTl9IRUFERVIsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZGVudGl0eU1vZGUsIEhlYWRlckJlYXJpbmcgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB7IExpZmVjeWNsZUJyaWRnZVBsdWdpbiwgbGlmZWN5Y2xlQnJpZGdlIH0gZnJvbSBcIi4vc3JjL2ludGVyY2VwdG9yLnRzXCI7XG5leHBvcnQgdHlwZSB7IExpZmVjeWNsZUV2ZW50LCBMaWZlY3ljbGVIYW5kbGVyLCBSZXNvbHZlZEFwcEVudiwgQmluZGFibGVQcm9jZXNzLCBJbnRlcmNlcHRvckNvbnRleHQsIEludGVyY2VwdG9yLCBJbnRlcmNlcHRvclJ1bnRpbWUgfSBmcm9tIFwiLi9zcmMvaW50ZXJjZXB0b3IudHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VSZXNvbHZlcklucHV0cywgTGFrZWJhc2VDb25uZWN0aW9uIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXJlc29sdmVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IE93bmVyc2hpcE1pZ3JhdGlvbkVycm9yT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9taWdyYXRpb24udHNcIjtcbmV4cG9ydCB7IFNTTF9NT0RFUyB9IGZyb20gXCIuL3NyYy9wZ2FkZHJlc3MudHNcIjtcbmV4cG9ydCB0eXBlIHsgU3NsTW9kZSwgUGFyc2VkQWRkcmVzcywgTGFrZWJhc2VDb25uZWN0aW9uSW5wdXRzIH0gZnJvbSBcIi4vc3JjL3BnYWRkcmVzcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBSdW5QbHVnaW5FeGVjdXRpb25PcHRpb25zIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi1leGVjdXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgUGx1Z2luQ29udGV4dExpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLXJlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlcXVlc3RUYWdWYWx1ZSB9IGZyb20gXCIuL3NyYy9yZXF1ZXN0LXRhZ3MudHNcIjtcbmV4cG9ydCB7IFRvb2xSZWdpc3RyeVBsdWdpbiB9IGZyb20gXCIuL3NyYy90b29sLXByb3ZpZGVyLnRzXCI7XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** In-process request tags shared by AppKit plugins. */
|
|
2
|
+
/** Primitive values supported by the request tag store. */
|
|
3
|
+
export type RequestTagValue = string | number | boolean;
|
|
4
|
+
/** Inject one tag into an in-process request context. */
|
|
5
|
+
export declare function injectRequestTag(request: object, name: string, value: RequestTagValue): void;
|
|
6
|
+
/** Inject multiple tags into an in-process request context. */
|
|
7
|
+
export declare function injectRequestTags(request: object, tags: Readonly<Record<string, RequestTagValue | undefined>>): void;
|
|
8
|
+
/** Read a snapshot of tags injected by AppKit plugins for one request. */
|
|
9
|
+
export declare function getRequestTags(request: object): Readonly<Record<string, RequestTagValue>>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** In-process request tags shared by AppKit plugins. */
|
|
2
|
+
const STORE_KEY = Symbol.for("@dbx-tools/appkit/request-tags");
|
|
3
|
+
const globalStore = globalThis;
|
|
4
|
+
const store = (globalStore[STORE_KEY] ??= new WeakMap());
|
|
5
|
+
/** Inject one tag into an in-process request context. */
|
|
6
|
+
export function injectRequestTag(request, name, value) {
|
|
7
|
+
const normalized = name.trim();
|
|
8
|
+
if (!normalized)
|
|
9
|
+
return;
|
|
10
|
+
let tags = store.get(request);
|
|
11
|
+
if (!tags) {
|
|
12
|
+
tags = new Map();
|
|
13
|
+
store.set(request, tags);
|
|
14
|
+
}
|
|
15
|
+
tags.set(normalized, value);
|
|
16
|
+
}
|
|
17
|
+
/** Inject multiple tags into an in-process request context. */
|
|
18
|
+
export function injectRequestTags(request, tags) {
|
|
19
|
+
for (const [name, value] of Object.entries(tags)) {
|
|
20
|
+
if (value !== undefined)
|
|
21
|
+
injectRequestTag(request, name, value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Read a snapshot of tags injected by AppKit plugins for one request. */
|
|
25
|
+
export function getRequestTags(request) {
|
|
26
|
+
return Object.fromEntries(store.get(request) ?? []);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10YWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtdGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFPeEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sV0FBVyxHQUFHLFVBRW5CLENBQUM7QUFDRixNQUFNLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBeUIsQ0FBQyxDQUFDO0FBRWhGLHlEQUF5RDtBQUN6RCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxLQUFzQjtJQUNwRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsSUFBSSxDQUFDLFVBQVU7UUFBRSxPQUFPO0lBQ3hCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsSUFBSSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsT0FBZSxFQUNmLElBQTJEO0lBRTNELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakQsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUM7QUFFRCwwRUFBMEU7QUFDMUUsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogSW4tcHJvY2VzcyByZXF1ZXN0IHRhZ3Mgc2hhcmVkIGJ5IEFwcEtpdCBwbHVnaW5zLiAqL1xuXG4vKiogUHJpbWl0aXZlIHZhbHVlcyBzdXBwb3J0ZWQgYnkgdGhlIHJlcXVlc3QgdGFnIHN0b3JlLiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdFRhZ1ZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxudHlwZSBSZXF1ZXN0VGFnTWFwID0gTWFwPHN0cmluZywgUmVxdWVzdFRhZ1ZhbHVlPjtcblxuY29uc3QgU1RPUkVfS0VZID0gU3ltYm9sLmZvcihcIkBkYngtdG9vbHMvYXBwa2l0L3JlcXVlc3QtdGFnc1wiKTtcbmNvbnN0IGdsb2JhbFN0b3JlID0gZ2xvYmFsVGhpcyBhcyB0eXBlb2YgZ2xvYmFsVGhpcyAmIHtcbiAgW1NUT1JFX0tFWV0/OiBXZWFrTWFwPG9iamVjdCwgUmVxdWVzdFRhZ01hcD47XG59O1xuY29uc3Qgc3RvcmUgPSAoZ2xvYmFsU3RvcmVbU1RPUkVfS0VZXSA/Pz0gbmV3IFdlYWtNYXA8b2JqZWN0LCBSZXF1ZXN0VGFnTWFwPigpKTtcblxuLyoqIEluamVjdCBvbmUgdGFnIGludG8gYW4gaW4tcHJvY2VzcyByZXF1ZXN0IGNvbnRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UmVxdWVzdFRhZyhyZXF1ZXN0OiBvYmplY3QsIG5hbWU6IHN0cmluZywgdmFsdWU6IFJlcXVlc3RUYWdWYWx1ZSk6IHZvaWQge1xuICBjb25zdCBub3JtYWxpemVkID0gbmFtZS50cmltKCk7XG4gIGlmICghbm9ybWFsaXplZCkgcmV0dXJuO1xuICBsZXQgdGFncyA9IHN0b3JlLmdldChyZXF1ZXN0KTtcbiAgaWYgKCF0YWdzKSB7XG4gICAgdGFncyA9IG5ldyBNYXA8c3RyaW5nLCBSZXF1ZXN0VGFnVmFsdWU+KCk7XG4gICAgc3RvcmUuc2V0KHJlcXVlc3QsIHRhZ3MpO1xuICB9XG4gIHRhZ3Muc2V0KG5vcm1hbGl6ZWQsIHZhbHVlKTtcbn1cblxuLyoqIEluamVjdCBtdWx0aXBsZSB0YWdzIGludG8gYW4gaW4tcHJvY2VzcyByZXF1ZXN0IGNvbnRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UmVxdWVzdFRhZ3MoXG4gIHJlcXVlc3Q6IG9iamVjdCxcbiAgdGFnczogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgUmVxdWVzdFRhZ1ZhbHVlIHwgdW5kZWZpbmVkPj4sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRhZ3MpKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIGluamVjdFJlcXVlc3RUYWcocmVxdWVzdCwgbmFtZSwgdmFsdWUpO1xuICB9XG59XG5cbi8qKiBSZWFkIGEgc25hcHNob3Qgb2YgdGFncyBpbmplY3RlZCBieSBBcHBLaXQgcGx1Z2lucyBmb3Igb25lIHJlcXVlc3QuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVxdWVzdFRhZ3MocmVxdWVzdDogb2JqZWN0KTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgUmVxdWVzdFRhZ1ZhbHVlPj4ge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHN0b3JlLmdldChyZXF1ZXN0KSA/PyBbXSk7XG59XG4iXX0=
|
package/lib/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/_auto-configure.ts","../src/_cache-storage.ts","../src/appkit.ts","../src/brand-context.ts","../src/bundle.ts","../src/child-process.ts","../src/databricks.ts","../src/identity.ts","../src/interceptor.ts","../src/lakebase-resolver.ts","../src/migration.ts","../src/pgaddress.ts","../src/plugin-execution.ts","../src/plugin-registry.ts","../src/provision.ts","../src/tool-provider.ts","../src/toolkit-entries.ts","../index.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../src/_auto-configure.ts","../src/_cache-storage.ts","../src/appkit.ts","../src/brand-context.ts","../src/bundle.ts","../src/child-process.ts","../src/databricks.ts","../src/identity.ts","../src/interceptor.ts","../src/lakebase-resolver.ts","../src/migration.ts","../src/pgaddress.ts","../src/plugin-execution.ts","../src/plugin-registry.ts","../src/provision.ts","../src/request-tags.ts","../src/tool-provider.ts","../src/toolkit-entries.ts","../index.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@databricks/appkit": "0.81.0",
|
|
23
|
-
"@dbx-tools/projen": "^0.9.
|
|
23
|
+
"@dbx-tools/projen": "^0.9.67",
|
|
24
24
|
"@types/node": "^24.6.0",
|
|
25
25
|
"typescript": "^5.9.3",
|
|
26
26
|
"vitest": "3.2.4"
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@databricks/sdk-experimental": "^0.17.0",
|
|
33
|
-
"@dbx-tools/auth": "^0.9.
|
|
34
|
-
"@dbx-tools/core": "^0.9.
|
|
35
|
-
"@dbx-tools/lakebase": "^0.9.
|
|
36
|
-
"@dbx-tools/postgres": "^0.9.
|
|
37
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
33
|
+
"@dbx-tools/auth": "^0.9.67",
|
|
34
|
+
"@dbx-tools/core": "^0.9.67",
|
|
35
|
+
"@dbx-tools/lakebase": "^0.9.67",
|
|
36
|
+
"@dbx-tools/postgres": "^0.9.67",
|
|
37
|
+
"@dbx-tools/shared-core": "^0.9.67",
|
|
38
38
|
"zod": "4.3.6"
|
|
39
39
|
},
|
|
40
40
|
"main": "./lib/index.js",
|
|
@@ -100,6 +100,10 @@
|
|
|
100
100
|
"types": "./lib/src/provision.d.ts",
|
|
101
101
|
"default": "./lib/src/provision.js"
|
|
102
102
|
},
|
|
103
|
+
"./request-tags": {
|
|
104
|
+
"types": "./lib/src/request-tags.d.ts",
|
|
105
|
+
"default": "./lib/src/request-tags.js"
|
|
106
|
+
},
|
|
103
107
|
"./tool-provider": {
|
|
104
108
|
"types": "./lib/src/tool-provider.d.ts",
|
|
105
109
|
"default": "./lib/src/tool-provider.js"
|
|
@@ -111,7 +115,7 @@
|
|
|
111
115
|
"./package.json": "./package.json"
|
|
112
116
|
}
|
|
113
117
|
},
|
|
114
|
-
"version": "0.9.
|
|
118
|
+
"version": "0.9.67",
|
|
115
119
|
"types": "./lib/index.d.ts",
|
|
116
120
|
"dbxToolsConfig": {
|
|
117
121
|
"tags": [
|
|
@@ -176,6 +180,10 @@
|
|
|
176
180
|
"types": "./lib/src/provision.d.ts",
|
|
177
181
|
"default": "./lib/src/provision.js"
|
|
178
182
|
},
|
|
183
|
+
"./request-tags": {
|
|
184
|
+
"types": "./lib/src/request-tags.d.ts",
|
|
185
|
+
"default": "./lib/src/request-tags.js"
|
|
186
|
+
},
|
|
179
187
|
"./tool-provider": {
|
|
180
188
|
"types": "./lib/src/tool-provider.d.ts",
|
|
181
189
|
"default": "./lib/src/tool-provider.js"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** In-process request tags shared by AppKit plugins. */
|
|
2
|
+
|
|
3
|
+
/** Primitive values supported by the request tag store. */
|
|
4
|
+
export type RequestTagValue = string | number | boolean;
|
|
5
|
+
|
|
6
|
+
type RequestTagMap = Map<string, RequestTagValue>;
|
|
7
|
+
|
|
8
|
+
const STORE_KEY = Symbol.for("@dbx-tools/appkit/request-tags");
|
|
9
|
+
const globalStore = globalThis as typeof globalThis & {
|
|
10
|
+
[STORE_KEY]?: WeakMap<object, RequestTagMap>;
|
|
11
|
+
};
|
|
12
|
+
const store = (globalStore[STORE_KEY] ??= new WeakMap<object, RequestTagMap>());
|
|
13
|
+
|
|
14
|
+
/** Inject one tag into an in-process request context. */
|
|
15
|
+
export function injectRequestTag(request: object, name: string, value: RequestTagValue): void {
|
|
16
|
+
const normalized = name.trim();
|
|
17
|
+
if (!normalized) return;
|
|
18
|
+
let tags = store.get(request);
|
|
19
|
+
if (!tags) {
|
|
20
|
+
tags = new Map<string, RequestTagValue>();
|
|
21
|
+
store.set(request, tags);
|
|
22
|
+
}
|
|
23
|
+
tags.set(normalized, value);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Inject multiple tags into an in-process request context. */
|
|
27
|
+
export function injectRequestTags(
|
|
28
|
+
request: object,
|
|
29
|
+
tags: Readonly<Record<string, RequestTagValue | undefined>>,
|
|
30
|
+
): void {
|
|
31
|
+
for (const [name, value] of Object.entries(tags)) {
|
|
32
|
+
if (value !== undefined) injectRequestTag(request, name, value);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Read a snapshot of tags injected by AppKit plugins for one request. */
|
|
37
|
+
export function getRequestTags(request: object): Readonly<Record<string, RequestTagValue>> {
|
|
38
|
+
return Object.fromEntries(store.get(request) ?? []);
|
|
39
|
+
}
|