@databricks/appkit 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +2 -0
  2. package/dist/app/index.d.ts.map +1 -1
  3. package/dist/appkit/package.js +1 -1
  4. package/dist/cache/index.d.ts +1 -1
  5. package/dist/cache/index.d.ts.map +1 -1
  6. package/dist/cli/commands/plugin/add-resource/add-resource.js +10 -4
  7. package/dist/cli/commands/plugin/add-resource/add-resource.js.map +1 -1
  8. package/dist/cli/commands/plugin/create/scaffold.js +10 -16
  9. package/dist/cli/commands/plugin/create/scaffold.js.map +1 -1
  10. package/dist/cli/commands/plugin/list/list.js +44 -26
  11. package/dist/cli/commands/plugin/list/list.js.map +1 -1
  12. package/dist/cli/commands/plugin/manifest-resolve.js +57 -0
  13. package/dist/cli/commands/plugin/manifest-resolve.js.map +1 -0
  14. package/dist/cli/commands/plugin/sync/sync.js +121 -71
  15. package/dist/cli/commands/plugin/sync/sync.js.map +1 -1
  16. package/dist/cli/commands/plugin/trusted-js-manifest.js +28 -0
  17. package/dist/cli/commands/plugin/trusted-js-manifest.js.map +1 -0
  18. package/dist/cli/commands/plugin/validate/validate.js +32 -14
  19. package/dist/cli/commands/plugin/validate/validate.js.map +1 -1
  20. package/dist/connectors/genie/client.d.ts +4 -0
  21. package/dist/connectors/genie/index.d.ts +3 -0
  22. package/dist/connectors/genie/types.d.ts +1 -0
  23. package/dist/connectors/genie/types.d.ts.map +1 -1
  24. package/dist/connectors/lakebase/index.d.ts +2 -3
  25. package/dist/connectors/lakebase/index.d.ts.map +1 -1
  26. package/dist/connectors/lakebase/index.js.map +1 -1
  27. package/dist/connectors/lakebase-v1/client.js +1 -1
  28. package/dist/context/execution-context.d.ts +0 -1
  29. package/dist/context/execution-context.d.ts.map +1 -1
  30. package/dist/context/index.d.ts +3 -0
  31. package/dist/context/service-context.d.ts +1 -1
  32. package/dist/context/service-context.d.ts.map +1 -1
  33. package/dist/context/user-context.d.ts +1 -2
  34. package/dist/context/user-context.d.ts.map +1 -1
  35. package/dist/core/appkit.d.ts +2 -1
  36. package/dist/core/appkit.d.ts.map +1 -1
  37. package/dist/core/index.d.ts +1 -0
  38. package/dist/errors/authentication.d.ts +0 -1
  39. package/dist/errors/authentication.d.ts.map +1 -1
  40. package/dist/errors/base.d.ts.map +1 -1
  41. package/dist/errors/configuration.d.ts +0 -1
  42. package/dist/errors/configuration.d.ts.map +1 -1
  43. package/dist/errors/connection.d.ts +0 -1
  44. package/dist/errors/connection.d.ts.map +1 -1
  45. package/dist/errors/execution.d.ts +0 -1
  46. package/dist/errors/execution.d.ts.map +1 -1
  47. package/dist/errors/initialization.d.ts +0 -1
  48. package/dist/errors/initialization.d.ts.map +1 -1
  49. package/dist/errors/server.d.ts +0 -1
  50. package/dist/errors/server.d.ts.map +1 -1
  51. package/dist/errors/tunnel.d.ts +0 -1
  52. package/dist/errors/tunnel.d.ts.map +1 -1
  53. package/dist/errors/validation.d.ts +0 -1
  54. package/dist/errors/validation.d.ts.map +1 -1
  55. package/dist/index.d.ts +7 -1
  56. package/dist/plugin/dev-reader.d.ts +5 -4
  57. package/dist/plugin/dev-reader.d.ts.map +1 -1
  58. package/dist/plugin/index.d.ts +4 -0
  59. package/dist/plugin/plugin.d.ts +3 -1
  60. package/dist/plugin/plugin.d.ts.map +1 -1
  61. package/dist/plugin/to-plugin.d.ts +1 -1
  62. package/dist/plugin/to-plugin.d.ts.map +1 -1
  63. package/dist/plugins/analytics/analytics.d.ts +5 -2
  64. package/dist/plugins/analytics/analytics.d.ts.map +1 -1
  65. package/dist/plugins/analytics/analytics.js +2 -2
  66. package/dist/plugins/analytics/analytics.js.map +1 -1
  67. package/dist/plugins/analytics/index.d.ts +2 -0
  68. package/dist/plugins/analytics/index.js +0 -1
  69. package/dist/plugins/analytics/manifest.js +30 -18
  70. package/dist/plugins/analytics/manifest.js.map +1 -1
  71. package/dist/plugins/analytics/types.d.ts +1 -0
  72. package/dist/plugins/analytics/types.d.ts.map +1 -1
  73. package/dist/plugins/genie/genie.d.ts +4 -1
  74. package/dist/plugins/genie/genie.d.ts.map +1 -1
  75. package/dist/plugins/genie/genie.js +2 -2
  76. package/dist/plugins/genie/genie.js.map +1 -1
  77. package/dist/plugins/genie/index.d.ts +4 -0
  78. package/dist/plugins/genie/index.js +0 -1
  79. package/dist/plugins/genie/manifest.js +37 -8
  80. package/dist/plugins/genie/manifest.js.map +1 -1
  81. package/dist/plugins/genie/types.d.ts +2 -0
  82. package/dist/plugins/genie/types.d.ts.map +1 -1
  83. package/dist/plugins/index.d.ts +13 -0
  84. package/dist/plugins/index.js +0 -4
  85. package/dist/plugins/lakebase/index.d.ts +2 -0
  86. package/dist/plugins/lakebase/index.js +0 -1
  87. package/dist/plugins/lakebase/lakebase.d.ts +14 -12
  88. package/dist/plugins/lakebase/lakebase.d.ts.map +1 -1
  89. package/dist/plugins/lakebase/lakebase.js +2 -2
  90. package/dist/plugins/lakebase/lakebase.js.map +1 -1
  91. package/dist/plugins/lakebase/manifest.js +14 -8
  92. package/dist/plugins/lakebase/manifest.js.map +1 -1
  93. package/dist/plugins/lakebase/types.d.ts +1 -1
  94. package/dist/plugins/lakebase/types.d.ts.map +1 -1
  95. package/dist/plugins/server/index.d.ts +7 -9
  96. package/dist/plugins/server/index.d.ts.map +1 -1
  97. package/dist/plugins/server/index.js +2 -2
  98. package/dist/plugins/server/index.js.map +1 -1
  99. package/dist/plugins/server/manifest.js +36 -18
  100. package/dist/plugins/server/manifest.js.map +1 -1
  101. package/dist/plugins/server/types.d.ts +2 -0
  102. package/dist/plugins/server/types.d.ts.map +1 -1
  103. package/dist/registry/index.d.ts +4 -0
  104. package/dist/registry/manifest-loader.d.ts +1 -1
  105. package/dist/registry/manifest-loader.d.ts.map +1 -1
  106. package/dist/registry/resource-registry.d.ts +1 -1
  107. package/dist/registry/resource-registry.d.ts.map +1 -1
  108. package/dist/registry/types.d.ts +1 -4
  109. package/dist/registry/types.d.ts.map +1 -1
  110. package/dist/registry/types.generated.d.ts +1 -1
  111. package/dist/registry/types.generated.d.ts.map +1 -1
  112. package/dist/registry/types.generated.js.map +1 -1
  113. package/dist/shared/src/cache.d.ts +1 -1
  114. package/dist/shared/src/cache.d.ts.map +1 -1
  115. package/dist/shared/src/execute.d.ts +1 -1
  116. package/dist/shared/src/execute.d.ts.map +1 -1
  117. package/dist/shared/src/genie.d.ts.map +1 -1
  118. package/dist/shared/src/index.d.ts +7 -0
  119. package/dist/shared/src/plugin.d.ts +2 -3
  120. package/dist/shared/src/plugin.d.ts.map +1 -1
  121. package/dist/shared/src/sql/helpers.d.ts +0 -1
  122. package/dist/shared/src/sql/helpers.d.ts.map +1 -1
  123. package/dist/shared/src/sql/types.d.ts.map +1 -1
  124. package/dist/shared/src/tunnel.d.ts +1 -1
  125. package/dist/shared/src/tunnel.d.ts.map +1 -1
  126. package/dist/stream/arrow-stream-processor.d.ts +1 -0
  127. package/dist/stream/buffers.d.ts +1 -0
  128. package/dist/stream/index.d.ts +3 -0
  129. package/dist/stream/stream-manager.d.ts +1 -0
  130. package/dist/stream/stream-manager.d.ts.map +1 -1
  131. package/dist/stream/types.d.ts +3 -0
  132. package/dist/telemetry/config.d.ts +1 -0
  133. package/dist/telemetry/index.d.ts +4 -0
  134. package/dist/telemetry/instrumentations.d.ts +1 -0
  135. package/dist/telemetry/telemetry-manager.d.ts +4 -0
  136. package/dist/telemetry/telemetry-provider.d.ts +6 -0
  137. package/dist/telemetry/types.d.ts.map +1 -1
  138. package/dist/type-generator/cache.js +10 -12
  139. package/dist/type-generator/cache.js.map +1 -1
  140. package/dist/type-generator/index.js +2 -2
  141. package/dist/type-generator/index.js.map +1 -1
  142. package/dist/type-generator/query-registry.js +165 -52
  143. package/dist/type-generator/query-registry.js.map +1 -1
  144. package/dist/type-generator/spinner.js +5 -1
  145. package/dist/type-generator/spinner.js.map +1 -1
  146. package/dist/type-generator/vite-plugin.d.ts +0 -1
  147. package/dist/type-generator/vite-plugin.d.ts.map +1 -1
  148. package/dist/type-generator/vite-plugin.js +2 -2
  149. package/dist/type-generator/vite-plugin.js.map +1 -1
  150. package/docs/development/project-setup.md +1 -1
  151. package/docs/plugins/plugin-management.md +16 -2
  152. package/package.json +3 -1
  153. package/dist/plugins/analytics/manifest.json +0 -36
  154. package/dist/plugins/genie/manifest.json +0 -43
  155. package/dist/plugins/lakebase/manifest.json +0 -12
  156. package/dist/plugins/server/manifest.json +0 -36
  157. /package/dist/plugins/server/remote-tunnel/{denied.html → denied.html/denied.html} +0 -0
  158. /package/dist/plugins/server/remote-tunnel/{index.html → index.html/index.html} +0 -0
  159. /package/dist/plugins/server/remote-tunnel/{wait.html → wait.html/wait.html} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","names":[],"sources":["../../../../../src/cli/commands/plugin/validate/validate.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport { Command } from \"commander\";\nimport {\n detectSchemaType,\n formatValidationErrors,\n validateManifest,\n validateTemplateManifest,\n} from \"./validate-manifest\";\n\nfunction resolveManifestPaths(paths: string[], cwd: string): string[] {\n const out: string[] = [];\n for (const p of paths) {\n const resolved = path.resolve(cwd, p);\n if (!fs.existsSync(resolved)) {\n console.error(`Path not found: ${p}`);\n continue;\n }\n const stat = fs.statSync(resolved);\n if (stat.isDirectory()) {\n const pluginManifest = path.join(resolved, \"manifest.json\");\n const templateManifest = path.join(resolved, \"appkit.plugins.json\");\n let found = false;\n if (fs.existsSync(pluginManifest)) {\n out.push(pluginManifest);\n found = true;\n }\n if (fs.existsSync(templateManifest)) {\n out.push(templateManifest);\n found = true;\n }\n if (!found) {\n console.error(\n `No manifest.json or appkit.plugins.json in directory: ${p}`,\n );\n }\n } else {\n out.push(resolved);\n }\n }\n return out;\n}\n\nfunction runPluginValidate(paths: string[]): void {\n const cwd = process.cwd();\n const toValidate = paths.length > 0 ? paths : [\".\"];\n const manifestPaths = resolveManifestPaths(toValidate, cwd);\n\n if (manifestPaths.length === 0) {\n console.error(\"No manifest files to validate.\");\n process.exit(1);\n }\n\n let hasFailure = false;\n for (const manifestPath of manifestPaths) {\n let obj: unknown;\n try {\n const raw = fs.readFileSync(manifestPath, \"utf-8\");\n obj = JSON.parse(raw);\n } catch (err) {\n console.error(`✗ ${manifestPath}`);\n console.error(` ${err instanceof Error ? err.message : String(err)}`);\n hasFailure = true;\n continue;\n }\n\n const schemaType = detectSchemaType(obj);\n const result =\n schemaType === \"template-plugins\"\n ? validateTemplateManifest(obj)\n : validateManifest(obj);\n\n const relativePath = path.relative(cwd, manifestPath);\n if (result.valid) {\n console.log(`✓ ${relativePath}`);\n } else {\n console.error(`✗ ${relativePath}`);\n if (result.errors?.length) {\n console.error(formatValidationErrors(result.errors, obj));\n }\n hasFailure = true;\n }\n }\n\n process.exit(hasFailure ? 1 : 0);\n}\n\nexport const pluginValidateCommand = new Command(\"validate\")\n .description(\n \"Validate plugin manifest(s) or template manifests against their JSON schema\",\n )\n .argument(\n \"[paths...]\",\n \"Paths to manifest.json, appkit.plugins.json, or plugin directories (default: .)\",\n )\n .action(runPluginValidate);\n"],"mappings":";;;;;;;AAWA,SAAS,qBAAqB,OAAiB,KAAuB;CACpE,MAAM,MAAgB,EAAE;AACxB,MAAK,MAAM,KAAK,OAAO;EACrB,MAAM,WAAW,KAAK,QAAQ,KAAK,EAAE;AACrC,MAAI,CAAC,GAAG,WAAW,SAAS,EAAE;AAC5B,WAAQ,MAAM,mBAAmB,IAAI;AACrC;;AAGF,MADa,GAAG,SAAS,SAAS,CACzB,aAAa,EAAE;GACtB,MAAM,iBAAiB,KAAK,KAAK,UAAU,gBAAgB;GAC3D,MAAM,mBAAmB,KAAK,KAAK,UAAU,sBAAsB;GACnE,IAAI,QAAQ;AACZ,OAAI,GAAG,WAAW,eAAe,EAAE;AACjC,QAAI,KAAK,eAAe;AACxB,YAAQ;;AAEV,OAAI,GAAG,WAAW,iBAAiB,EAAE;AACnC,QAAI,KAAK,iBAAiB;AAC1B,YAAQ;;AAEV,OAAI,CAAC,MACH,SAAQ,MACN,yDAAyD,IAC1D;QAGH,KAAI,KAAK,SAAS;;AAGtB,QAAO;;AAGT,SAAS,kBAAkB,OAAuB;CAChD,MAAM,MAAM,QAAQ,KAAK;CAEzB,MAAM,gBAAgB,qBADH,MAAM,SAAS,IAAI,QAAQ,CAAC,IAAI,EACI,IAAI;AAE3D,KAAI,cAAc,WAAW,GAAG;AAC9B,UAAQ,MAAM,iCAAiC;AAC/C,UAAQ,KAAK,EAAE;;CAGjB,IAAI,aAAa;AACjB,MAAK,MAAM,gBAAgB,eAAe;EACxC,IAAI;AACJ,MAAI;GACF,MAAM,MAAM,GAAG,aAAa,cAAc,QAAQ;AAClD,SAAM,KAAK,MAAM,IAAI;WACd,KAAK;AACZ,WAAQ,MAAM,KAAK,eAAe;AAClC,WAAQ,MAAM,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI,GAAG;AACtE,gBAAa;AACb;;EAIF,MAAM,SADa,iBAAiB,IAAI,KAEvB,qBACX,yBAAyB,IAAI,GAC7B,iBAAiB,IAAI;EAE3B,MAAM,eAAe,KAAK,SAAS,KAAK,aAAa;AACrD,MAAI,OAAO,MACT,SAAQ,IAAI,KAAK,eAAe;OAC3B;AACL,WAAQ,MAAM,KAAK,eAAe;AAClC,OAAI,OAAO,QAAQ,OACjB,SAAQ,MAAM,uBAAuB,OAAO,QAAQ,IAAI,CAAC;AAE3D,gBAAa;;;AAIjB,SAAQ,KAAK,aAAa,IAAI,EAAE;;AAGlC,MAAa,wBAAwB,IAAI,QAAQ,WAAW,CACzD,YACC,8EACD,CACA,SACC,cACA,kFACD,CACA,OAAO,kBAAkB"}
1
+ {"version":3,"file":"validate.js","names":[],"sources":["../../../../../src/cli/commands/plugin/validate/validate.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport process from \"node:process\";\nimport { Command } from \"commander\";\nimport {\n loadManifestFromFile,\n type ResolvedManifest,\n resolveManifestInDir,\n} from \"../manifest-resolve\";\nimport {\n detectSchemaType,\n formatValidationErrors,\n validateManifest,\n validateTemplateManifest,\n} from \"./validate-manifest\";\n\nfunction resolveManifestPaths(\n paths: string[],\n cwd: string,\n allowJsManifest: boolean,\n): ResolvedManifest[] {\n const out: ResolvedManifest[] = [];\n for (const p of paths) {\n const resolved = path.resolve(cwd, p);\n if (!fs.existsSync(resolved)) {\n console.error(`Path not found: ${p}`);\n continue;\n }\n const stat = fs.statSync(resolved);\n if (stat.isDirectory()) {\n let found = false;\n const pluginResolved = resolveManifestInDir(resolved, {\n allowJsManifest,\n });\n if (pluginResolved) {\n out.push(pluginResolved);\n found = true;\n }\n const templateManifest = path.join(resolved, \"appkit.plugins.json\");\n if (fs.existsSync(templateManifest)) {\n out.push({ path: templateManifest, type: \"json\" });\n found = true;\n }\n if (!found) {\n console.error(\n `No ${allowJsManifest ? \"manifest.json, manifest.js, or\" : \"manifest.json or\"} appkit.plugins.json in directory: ${p}`,\n );\n }\n } else {\n const ext = path.extname(resolved).toLowerCase();\n if (!allowJsManifest && (ext === \".js\" || ext === \".cjs\")) {\n console.error(\n `JS manifest provided but disabled by default: ${p}. Re-run with --allow-js-manifest to opt in.`,\n );\n continue;\n }\n out.push({\n path: resolved,\n type: ext === \".js\" || ext === \".cjs\" ? \"js\" : \"json\",\n });\n }\n }\n return out;\n}\n\nasync function runPluginValidate(\n paths: string[],\n options: { allowJsManifest?: boolean },\n): Promise<void> {\n const cwd = process.cwd();\n const allowJsManifest = Boolean(options.allowJsManifest);\n if (allowJsManifest) {\n console.warn(\n \"Warning: --allow-js-manifest executes manifest.js/manifest.cjs files. Only use with trusted code.\",\n );\n }\n const toValidate = paths.length > 0 ? paths : [\".\"];\n const manifestPaths = resolveManifestPaths(toValidate, cwd, allowJsManifest);\n\n if (manifestPaths.length === 0) {\n console.error(\"No manifest files to validate.\");\n process.exit(1);\n }\n\n let hasFailure = false;\n for (const { path: manifestPath, type } of manifestPaths) {\n let obj: unknown;\n try {\n obj = await loadManifestFromFile(manifestPath, type, { allowJsManifest });\n } catch (err) {\n console.error(`✗ ${manifestPath}`);\n console.error(` ${err instanceof Error ? err.message : String(err)}`);\n hasFailure = true;\n continue;\n }\n\n const schemaType = detectSchemaType(obj);\n const result =\n schemaType === \"template-plugins\"\n ? validateTemplateManifest(obj)\n : validateManifest(obj);\n\n const relativePath = path.relative(cwd, manifestPath);\n if (result.valid) {\n console.log(`✓ ${relativePath}`);\n } else {\n console.error(`✗ ${relativePath}`);\n if (result.errors?.length) {\n console.error(formatValidationErrors(result.errors, obj));\n }\n hasFailure = true;\n }\n }\n\n process.exit(hasFailure ? 1 : 0);\n}\n\nexport const pluginValidateCommand = new Command(\"validate\")\n .description(\n \"Validate plugin manifest(s) or template manifests against their JSON schema\",\n )\n .argument(\n \"[paths...]\",\n \"Paths to manifest.json or appkit.plugins.json (or plugin directories); use --allow-js-manifest to include manifest.js\",\n )\n .option(\n \"--allow-js-manifest\",\n \"Allow reading manifest.js/manifest.cjs (executes code; use only with trusted plugins)\",\n )\n .action((paths: string[], opts: { allowJsManifest?: boolean }) =>\n runPluginValidate(paths, opts).catch((err) => {\n console.error(err);\n process.exit(1);\n }),\n );\n"],"mappings":";;;;;;;;AAgBA,SAAS,qBACP,OACA,KACA,iBACoB;CACpB,MAAM,MAA0B,EAAE;AAClC,MAAK,MAAM,KAAK,OAAO;EACrB,MAAM,WAAW,KAAK,QAAQ,KAAK,EAAE;AACrC,MAAI,CAAC,GAAG,WAAW,SAAS,EAAE;AAC5B,WAAQ,MAAM,mBAAmB,IAAI;AACrC;;AAGF,MADa,GAAG,SAAS,SAAS,CACzB,aAAa,EAAE;GACtB,IAAI,QAAQ;GACZ,MAAM,iBAAiB,qBAAqB,UAAU,EACpD,iBACD,CAAC;AACF,OAAI,gBAAgB;AAClB,QAAI,KAAK,eAAe;AACxB,YAAQ;;GAEV,MAAM,mBAAmB,KAAK,KAAK,UAAU,sBAAsB;AACnE,OAAI,GAAG,WAAW,iBAAiB,EAAE;AACnC,QAAI,KAAK;KAAE,MAAM;KAAkB,MAAM;KAAQ,CAAC;AAClD,YAAQ;;AAEV,OAAI,CAAC,MACH,SAAQ,MACN,MAAM,kBAAkB,mCAAmC,mBAAmB,qCAAqC,IACpH;SAEE;GACL,MAAM,MAAM,KAAK,QAAQ,SAAS,CAAC,aAAa;AAChD,OAAI,CAAC,oBAAoB,QAAQ,SAAS,QAAQ,SAAS;AACzD,YAAQ,MACN,iDAAiD,EAAE,8CACpD;AACD;;AAEF,OAAI,KAAK;IACP,MAAM;IACN,MAAM,QAAQ,SAAS,QAAQ,SAAS,OAAO;IAChD,CAAC;;;AAGN,QAAO;;AAGT,eAAe,kBACb,OACA,SACe;CACf,MAAM,MAAM,QAAQ,KAAK;CACzB,MAAM,kBAAkB,QAAQ,QAAQ,gBAAgB;AACxD,KAAI,gBACF,SAAQ,KACN,oGACD;CAGH,MAAM,gBAAgB,qBADH,MAAM,SAAS,IAAI,QAAQ,CAAC,IAAI,EACI,KAAK,gBAAgB;AAE5E,KAAI,cAAc,WAAW,GAAG;AAC9B,UAAQ,MAAM,iCAAiC;AAC/C,UAAQ,KAAK,EAAE;;CAGjB,IAAI,aAAa;AACjB,MAAK,MAAM,EAAE,MAAM,cAAc,UAAU,eAAe;EACxD,IAAI;AACJ,MAAI;AACF,SAAM,MAAM,qBAAqB,cAAc,MAAM,EAAE,iBAAiB,CAAC;WAClE,KAAK;AACZ,WAAQ,MAAM,KAAK,eAAe;AAClC,WAAQ,MAAM,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI,GAAG;AACtE,gBAAa;AACb;;EAIF,MAAM,SADa,iBAAiB,IAAI,KAEvB,qBACX,yBAAyB,IAAI,GAC7B,iBAAiB,IAAI;EAE3B,MAAM,eAAe,KAAK,SAAS,KAAK,aAAa;AACrD,MAAI,OAAO,MACT,SAAQ,IAAI,KAAK,eAAe;OAC3B;AACL,WAAQ,MAAM,KAAK,eAAe;AAClC,OAAI,OAAO,QAAQ,OACjB,SAAQ,MAAM,uBAAuB,OAAO,QAAQ,IAAI,CAAC;AAE3D,gBAAa;;;AAIjB,SAAQ,KAAK,aAAa,IAAI,EAAE;;AAGlC,MAAa,wBAAwB,IAAI,QAAQ,WAAW,CACzD,YACC,8EACD,CACA,SACC,cACA,wHACD,CACA,OACC,uBACA,wFACD,CACA,QAAQ,OAAiB,SACxB,kBAAkB,OAAO,KAAK,CAAC,OAAO,QAAQ;AAC5C,SAAQ,MAAM,IAAI;AAClB,SAAQ,KAAK,EAAE;EACf,CACH"}
@@ -0,0 +1,4 @@
1
+ import "./types.js";
2
+ import { WorkspaceClient } from "@databricks/sdk-experimental";
3
+ import "@databricks/sdk-experimental/dist/apis/dashboards";
4
+ import "@databricks/sdk-experimental/dist/wait";
@@ -0,0 +1,3 @@
1
+ import { GenieAttachmentResponse, GenieMessageResponse, GenieStreamEvent } from "../../shared/src/genie.js";
2
+ import { GenieConversationHistoryResponse } from "./types.js";
3
+ import "./client.js";
@@ -1,4 +1,5 @@
1
1
  import { GenieAttachmentResponse, GenieMessageResponse, GenieStreamEvent } from "../../shared/src/genie.js";
2
+ import "../../shared/src/index.js";
2
3
 
3
4
  //#region src/connectors/genie/types.d.ts
4
5
  interface GenieConversationHistoryResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/connectors/genie/types.ts"],"sourcesContent":[],"mappings":";;;AAUiB,UAAA,gCAAA,CAAgC;;;YAGrC"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/connectors/genie/types.ts"],"mappings":";;;;UAUiB,gCAAA;EACf,cAAA;EACA,OAAA;EACA,QAAA,EAAU,oBAAA;AAAA"}
@@ -1,8 +1,7 @@
1
1
  import { DatabaseCredential, GenerateDatabaseCredentialRequest, LakebasePoolConfig, LakebasePoolConfig as LakebasePoolConfig$1, RequestedClaims, RequestedClaimsPermissionSet, RequestedResource, generateDatabaseCredential, getLakebaseOrmConfig, getLakebasePgConfig, getUsernameWithApiLookup, getWorkspaceClient } from "@databricks/lakebase";
2
- import pg from "pg";
2
+ import { Pool } from "pg";
3
3
 
4
4
  //#region src/connectors/lakebase/index.d.ts
5
-
6
5
  /**
7
6
  * Create a Lakebase pool with appkit's logger integration.
8
7
  * Telemetry automatically uses appkit's OpenTelemetry configuration via global registry.
@@ -10,7 +9,7 @@ import pg from "pg";
10
9
  * @param config - Lakebase pool configuration
11
10
  * @returns PostgreSQL pool with appkit integration
12
11
  */
13
- declare function createLakebasePool$1(config?: Partial<LakebasePoolConfig>): pg.Pool;
12
+ declare function createLakebasePool$1(config?: Partial<LakebasePoolConfig>): Pool;
14
13
  //#endregion
15
14
  export { type DatabaseCredential, type GenerateDatabaseCredentialRequest, type LakebasePoolConfig$1 as LakebasePoolConfig, type RequestedClaims, RequestedClaimsPermissionSet, type RequestedResource, createLakebasePool$1 as createLakebasePool, generateDatabaseCredential, getLakebaseOrmConfig, getLakebasePgConfig, getUsernameWithApiLookup, getWorkspaceClient };
16
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/connectors/lakebase/index.ts"],"sourcesContent":[],"mappings":";;;;;;;AAcA;;;;;AAEU,iBAFM,oBAAA,CAEN,MAAA,CAAA,EADC,OACD,CADS,kBACT,CAAA,CAAA,EAAP,EAAA,CAAG,IAAI"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/connectors/lakebase/index.ts"],"mappings":";;;;;;AAcA;;;;;iBAAgB,oBAAA,CAAmB,MAAA,GAAS,OAAA,CAAQ,kBAAA,IAAsB,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createLakebasePool","createLakebasePoolBase"],"sources":["../../../src/connectors/lakebase/index.ts"],"sourcesContent":["import {\n createLakebasePool as createLakebasePoolBase,\n type LakebasePoolConfig,\n} from \"@databricks/lakebase\";\nimport type pg from \"pg\";\nimport { createLogger } from \"@/logging/logger\";\n\n/**\n * Create a Lakebase pool with appkit's logger integration.\n * Telemetry automatically uses appkit's OpenTelemetry configuration via global registry.\n *\n * @param config - Lakebase pool configuration\n * @returns PostgreSQL pool with appkit integration\n */\nexport function createLakebasePool(\n config?: Partial<LakebasePoolConfig>,\n): pg.Pool {\n const logger = createLogger(\"connectors:lakebase\");\n\n return createLakebasePoolBase({\n ...config,\n logger,\n });\n}\n\n// Re-export everything else from lakebase\nexport {\n createTokenRefreshCallback,\n type DatabaseCredential,\n type DriverTelemetry,\n type GenerateDatabaseCredentialRequest,\n generateDatabaseCredential,\n getLakebaseOrmConfig,\n getLakebasePgConfig,\n getUsernameWithApiLookup,\n getWorkspaceClient,\n type LakebasePoolConfig,\n type Logger,\n type RequestedClaims,\n RequestedClaimsPermissionSet,\n type RequestedResource,\n type TokenRefreshDeps,\n} from \"@databricks/lakebase\";\n"],"mappings":";;;;;;;;;;;AAcA,SAAgBA,qBACd,QACS;CACT,MAAM,SAAS,aAAa,sBAAsB;AAElD,QAAOC,mBAAuB;EAC5B,GAAG;EACH;EACD,CAAC"}
1
+ {"version":3,"file":"index.js","names":["createLakebasePool","createLakebasePoolBase"],"sources":["../../../src/connectors/lakebase/index.ts"],"sourcesContent":["import {\n createLakebasePool as createLakebasePoolBase,\n type LakebasePoolConfig,\n} from \"@databricks/lakebase\";\nimport type { Pool } from \"pg\";\nimport { createLogger } from \"@/logging/logger\";\n\n/**\n * Create a Lakebase pool with appkit's logger integration.\n * Telemetry automatically uses appkit's OpenTelemetry configuration via global registry.\n *\n * @param config - Lakebase pool configuration\n * @returns PostgreSQL pool with appkit integration\n */\nexport function createLakebasePool(config?: Partial<LakebasePoolConfig>): Pool {\n const logger = createLogger(\"connectors:lakebase\");\n\n return createLakebasePoolBase({\n ...config,\n logger,\n });\n}\n\n// Re-export everything else from lakebase\nexport {\n createTokenRefreshCallback,\n type DatabaseCredential,\n type DriverTelemetry,\n type GenerateDatabaseCredentialRequest,\n generateDatabaseCredential,\n getLakebaseOrmConfig,\n getLakebasePgConfig,\n getUsernameWithApiLookup,\n getWorkspaceClient,\n type LakebasePoolConfig,\n type Logger,\n type RequestedClaims,\n RequestedClaimsPermissionSet,\n type RequestedResource,\n type TokenRefreshDeps,\n} from \"@databricks/lakebase\";\n"],"mappings":";;;;;;;;;;;AAcA,SAAgBA,qBAAmB,QAA4C;CAC7E,MAAM,SAAS,aAAa,sBAAsB;AAElD,QAAOC,mBAAuB;EAC5B,GAAG;EACH;EACD,CAAC"}
@@ -3,7 +3,7 @@ import "../../telemetry/index.js";
3
3
  import "../../context/index.js";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import "@databricks/sdk-experimental";
6
- import pg from "pg";
6
+ import "pg";
7
7
 
8
8
  //#region src/connectors/lakebase-v1/client.ts
9
9
  const logger = createLogger("connectors:lakebase-v1");
@@ -2,7 +2,6 @@ import { ExecutionContext } from "./user-context.js";
2
2
  import "@databricks/sdk-experimental";
3
3
 
4
4
  //#region src/context/execution-context.d.ts
5
-
6
5
  /**
7
6
  * Get the current execution context.
8
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.d.ts","names":[],"sources":["../../src/context/execution-context.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBAmCgB,mBAAA,CAAA,GAAuB"}
1
+ {"version":3,"file":"execution-context.d.ts","names":[],"sources":["../../src/context/execution-context.ts"],"mappings":";;;;;;;;;;;;iBAmCgB,mBAAA,CAAA,GAAuB,gBAAA"}
@@ -0,0 +1,3 @@
1
+ import { ServiceContextState } from "./service-context.js";
2
+ import { ExecutionContext, UserContext } from "./user-context.js";
3
+ import { getExecutionContext } from "./execution-context.js";
@@ -1,7 +1,7 @@
1
+ import "./user-context.js";
1
2
  import { WorkspaceClient } from "@databricks/sdk-experimental";
2
3
 
3
4
  //#region src/context/service-context.d.ts
4
-
5
5
  /**
6
6
  * Service context holds the service principal client and shared resources.
7
7
  * This is initialized once at app startup and shared across all requests.
@@ -1 +1 @@
1
- {"version":3,"file":"service-context.d.ts","names":[],"sources":["../../src/context/service-context.ts"],"sourcesContent":[],"mappings":";;;;;AAqBA;;;AAMgB,UANC,mBAAA,CAMD;;EAEM,MAAA,EANZ,eAMY;;;;gBAFN;;eAED"}
1
+ {"version":3,"file":"service-context.d.ts","names":[],"sources":["../../src/context/service-context.ts"],"mappings":";;;;;;AAqBA;;UAAiB,mBAAA;EAEP;EAAR,MAAA,EAAQ,eAAA;EAMK;EAJb,aAAA;EAIoB;EAFpB,WAAA,GAAc,OAAA;EAJN;EAMR,WAAA,EAAa,OAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { ServiceContextState } from "./service-context.js";
2
2
 
3
3
  //#region src/context/user-context.d.ts
4
-
5
4
  /**
6
5
  * User execution context extends the service context with user-specific data.
7
6
  * Created on-demand when asUser(req) is called.
@@ -25,5 +24,5 @@ interface UserContext {
25
24
  */
26
25
  type ExecutionContext = ServiceContextState | UserContext;
27
26
  //#endregion
28
- export { ExecutionContext };
27
+ export { ExecutionContext, UserContext };
29
28
  //# sourceMappingURL=user-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-context.d.ts","names":[],"sources":["../../src/context/user-context.ts"],"sourcesContent":[],"mappings":";;;;;;AAMA;;AAEU,UAFO,WAAA,CAEP;;QAQK,EARL,mBAQK,CAAA,QAAA,CAAA;EAAO;EAQV,MAAA,EAAA,MAAA;EAAgB;UAAG,CAAA,EAAA,MAAA;;EAAiC,WAAA,CAAA,EAVhD,OAUgD,CAAA,MAAA,CAAA;;eARjD;;;;;;;KAQH,gBAAA,GAAmB,sBAAsB"}
1
+ {"version":3,"file":"user-context.d.ts","names":[],"sources":["../../src/context/user-context.ts"],"mappings":";;;;;AAMA;;UAAiB,WAAA;EAEP;EAAR,MAAA,EAAQ,mBAAA;EAQK;EANb,MAAA;EAMoB;EAJpB,QAAA;EAJQ;EAMR,WAAA,GAAc,OAAA;EAFd;EAIA,WAAA,EAAa,OAAA;EAFC;EAId,aAAA;AAAA;;;;KAMU,gBAAA,GAAmB,mBAAA,GAAsB,WAAA"}
@@ -1,10 +1,11 @@
1
1
  import { PluginConstructor, PluginData, PluginMap } from "../shared/src/plugin.js";
2
2
  import { CacheConfig } from "../shared/src/cache.js";
3
+ import "../shared/src/index.js";
3
4
  import { TelemetryConfig } from "../telemetry/types.js";
5
+ import "../telemetry/index.js";
4
6
  import { WorkspaceClient } from "@databricks/sdk-experimental";
5
7
 
6
8
  //#region src/core/appkit.d.ts
7
-
8
9
  /**
9
10
  * Bootstraps AppKit with the provided configuration.
10
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"appkit.d.ts","names":[],"sources":["../../src/core/appkit.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmOsB,oBACV,WAAW;YAGT;cACE;UACJ;WACC;IAEV,QAAQ,UAAU"}
1
+ {"version":3,"file":"appkit.d.ts","names":[],"sources":["../../src/core/appkit.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmOsB,SAAA,WACV,UAAA,CAAW,iBAAA,qBAAA,CAErB,MAAA;EACE,OAAA,GAAU,CAAA;EACV,SAAA,GAAY,eAAA;EACZ,KAAA,GAAQ,WAAA;EACR,MAAA,GAAS,eAAA;AAAA,IAEV,OAAA,CAAQ,SAAA,CAAU,CAAA"}
@@ -0,0 +1 @@
1
+ import { createApp } from "./appkit.js";
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/authentication.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when authentication fails.
7
6
  * Use for missing tokens, invalid credentials, or authorization failures.
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.d.ts","names":[],"sources":["../../src/errors/authentication.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;AAAyC,cAA5B,mBAAA,SAA4B,WAAA,CAAA;EAAW,SAAA,IAAA,GAAA,sBAAA;;;;;;2CAQD;;;;0BASzB;;;;qDAYd,QACP;;;;kCAU6B,QAAQ"}
1
+ {"version":3,"file":"authentication.d.ts","names":[],"sources":["../../src/errors/authentication.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,mBAAA,SAA4B,WAAA;EAAA,SAC9B,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EAH8B;;;EAAA,OAQhC,YAAA,CAAa,SAAA,YAA6B,mBAAA;EAA1C;;;EAAA,OASA,aAAA,CAAA,GAAiB,mBAAA;EAAA;;;EAAA,OAUjB,iBAAA,CACL,QAAA,UACA,KAAA,GAAQ,KAAA,GACP,mBAAA;EADD;;;EAAA,OAWK,gBAAA,CAAiB,KAAA,GAAQ,KAAA,GAAQ,mBAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/errors/base.ts"],"sourcesContent":[],"mappings":";;AAgCA;;;;;;;;;;;;;;;;;;;;uBAAsB,WAAA,SAAoB,KAAA;;;;;;;;mBAWvB;;qBAGE;;YAIG;cAAiB;;;;;;YAiB7B"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/errors/base.ts"],"mappings":";;AAgCA;;;;;;;;;;;;;;;;;;;;uBAAsB,WAAA,SAAoB,KAAA;EAkB1B;EAAA,kBAhBI,IAAA;EAgBW;EAAA,kBAbX,UAAA;EAahB;EAAA,kBAVgB,WAAA;EA2BR;EAAA,SAxBD,KAAA,GAAQ,KAAA;EAmDT;EAAA,SAhDC,OAAA,GAAU,MAAA;cAGjB,OAAA,UACA,OAAA;IAAY,KAAA,GAAQ,KAAA;IAAO,OAAA,GAAU,MAAA;EAAA;;;;;EAiBvC,MAAA,CAAA,GAAU,MAAA;;;;EAgBV,QAAA,CAAA;;;;UAWQ,eAAA;;;;UAwBA,gBAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/configuration.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when configuration is missing or invalid.
7
6
  * Use for missing environment variables, invalid settings, or setup issues.
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","names":[],"sources":["../../src/errors/configuration.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;cAAa,kBAAA,SAA2B,WAAA;;;;;;;yCAQC;;;;4DAUmB;;;;+DAavD;;;;gDAU2C"}
1
+ {"version":3,"file":"configuration.d.ts","names":[],"sources":["../../src/errors/configuration.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,kBAAA,SAA2B,WAAA;EAAA,SAC7B,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EADA;;;EAAA,OAMF,aAAA,CAAc,OAAA,WAAkB,kBAAA;EAAA;;;EAAA,OAUhC,gBAAA,CAAiB,QAAA,UAAkB,IAAA,YAAgB,kBAAA;EAAA;;;EAAA,OAUnD,iBAAA,CACL,OAAA,UACA,OAAA,YACC,kBAAA;EAAA;;;EAAA,OAUI,sBAAA,CAAuB,KAAA,WAAgB,kBAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/connection.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when a connection or network operation fails.
7
6
  * Use for database pool errors, API failures, timeouts, etc.
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","names":[],"sources":["../../src/errors/connection.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;AA+B6C,cA/BhC,eAAA,SAAwB,WAAA,CA+BQ;WAAQ,IAAA,GAAA,kBAAA;WAUU,UAAA,GAAA,GAAA;WAzC1B,WAAA,GAAA,IAAA;EAAW;;;6BAQnB,QAAQ;;;;mCAOF,QAAQ;;;;8CAOG,QAAQ;;;;6CAST,QAAQ;;;;+DAUU"}
1
+ {"version":3,"file":"connection.d.ts","names":[],"sources":["../../src/errors/connection.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,eAAA,SAAwB,WAAA;EAAA,SAC1B,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EAH0B;;;EAAA,OAQ5B,WAAA,CAAY,KAAA,GAAQ,KAAA,GAAQ,eAAA;EAP1B;;;EAAA,OAcF,iBAAA,CAAkB,KAAA,GAAQ,KAAA,GAAQ,eAAA;EAPd;;;EAAA,OAcpB,SAAA,CAAU,SAAA,UAAmB,KAAA,GAAQ,KAAA,GAAQ,eAAA;EAPnB;;;EAAA,OAgB1B,UAAA,CAAW,OAAA,UAAiB,KAAA,GAAQ,KAAA,GAAQ,eAAA;EATlC;;;EAAA,OAmBV,iBAAA,CAAkB,UAAA,UAAoB,IAAA,YAAgB,eAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/execution.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when an operation execution fails.
7
6
  * Use for statement failures, canceled operations, or unexpected states.
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","names":[],"sources":["../../src/errors/execution.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;AAA+C,cAAlC,cAAA,SAAuB,WAAA,CAAW;;;;;;;iDAQE;;;;qBAU5B;;;;0BAOK;;;;sCASY;;;;wCASE"}
1
+ {"version":3,"file":"execution.d.ts","names":[],"sources":["../../src/errors/execution.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,cAAA,SAAuB,WAAA;EAAA,SACzB,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EAFA;;;EAAA,OAOF,eAAA,CAAgB,YAAA,YAAwB,cAAA;EAAxB;;;EAAA,OAUhB,QAAA,CAAA,GAAY,cAAA;EAOZ;;;EAAA,OAAA,aAAA,CAAA,GAAiB,cAAA;EASY;;;EAAA,OAA7B,YAAA,CAAa,KAAA,WAAgB,cAAA;EASgB;;;EAAA,OAA7C,WAAA,CAAY,QAAA,WAAmB,cAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/initialization.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when a service or component is not properly initialized.
7
6
  * Use when accessing services before they are ready.
@@ -1 +1 @@
1
- {"version":3,"file":"initialization.d.ts","names":[],"sources":["../../src/errors/initialization.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;AAAoD,cAAvC,mBAAA,SAA4B,WAAA,CAAW;;;;;;;6DAW/C;;;;gDAY2C,QAAQ;;;;iCAUvB,QAAQ"}
1
+ {"version":3,"file":"initialization.d.ts","names":[],"sources":["../../src/errors/initialization.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,mBAAA,SAA4B,WAAA;EAAA,SAC9B,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EAFA;;;EAAA,OAOF,cAAA,CACL,WAAA,UACA,IAAA,YACC,mBAAA;EAFD;;;EAAA,OAcK,WAAA,CAAY,SAAA,UAAmB,KAAA,GAAQ,KAAA,GAAQ,mBAAA;EAAnC;;;EAAA,OAUZ,eAAA,CAAgB,KAAA,GAAQ,KAAA,GAAQ,mBAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/server.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when server lifecycle operations fail.
7
6
  * Use for server start/stop issues, configuration conflicts, etc.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","names":[],"sources":["../../src/errors/server.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;cAAa,WAAA,SAAoB,WAAA;;;;;;;+CAQc;;;;uBASxB;;;;+BASQ;;;;2DAO4B"}
1
+ {"version":3,"file":"server.d.ts","names":[],"sources":["../../src/errors/server.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,WAAA,SAAoB,WAAA;EAAA,SACtB,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EADA;;;EAAA,OAMF,iBAAA,CAAkB,SAAA,WAAoB,WAAA;EAAA;;;EAAA,OAStC,UAAA,CAAA,GAAc,WAAA;EASQ;;;EAAA,OAAtB,kBAAA,CAAA,GAAsB,WAAA;EAOuC;;;EAAA,OAA7D,uBAAA,CAAwB,aAAA,aAA0B,WAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/tunnel.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when remote tunnel operations fail.
7
6
  * Use for tunnel connection issues, message parsing failures, etc.
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.d.ts","names":[],"sources":["../../src/errors/tunnel.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;AAAiC,cAApB,WAAA,SAAoB,WAAA,CAAA;EAAW,SAAA,IAAA,GAAA,cAAA;;;;;;gCAQZ;;;;yBASP;;;;2CAOkB,QAAQ;;;;iDAUF,QAAQ"}
1
+ {"version":3,"file":"tunnel.d.ts","names":[],"sources":["../../src/errors/tunnel.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,WAAA,SAAoB,WAAA;EAAA,SACtB,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EAHsB;;;EAAA,OAQxB,mBAAA,CAAA,GAAuB,WAAA;EAAvB;;;EAAA,OASA,YAAA,CAAA,GAAgB,WAAA;EAOhB;;;EAAA,OAAA,WAAA,CAAY,IAAA,UAAc,KAAA,GAAQ,KAAA,GAAQ,WAAA;EAAA;;;EAAA,OAU1C,UAAA,CAAW,WAAA,UAAqB,KAAA,GAAQ,KAAA,GAAQ,WAAA;AAAA"}
@@ -1,7 +1,6 @@
1
1
  import { AppKitError } from "./base.js";
2
2
 
3
3
  //#region src/errors/validation.d.ts
4
-
5
4
  /**
6
5
  * Error thrown when input validation fails.
7
6
  * Use for invalid parameters, missing required fields, or type mismatches.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","names":[],"sources":["../../src/errors/validation.ts"],"sourcesContent":[],"mappings":";;;;;;AAYA;;;;;;;;cAAa,eAAA,SAAwB,WAAA;;;;;;;0CAQK;;;;;;6EAerC;;;;yCAgBoC"}
1
+ {"version":3,"file":"validation.d.ts","names":[],"sources":["../../src/errors/validation.ts"],"mappings":";;;;;AAYA;;;;;;;;cAAa,eAAA,SAAwB,WAAA;EAAA,SAC1B,IAAA;EAAA,SACA,UAAA;EAAA,SACA,WAAA;EAAA;;;EAAA,OAKF,YAAA,CAAa,SAAA,WAAoB,eAAA;EAWjC;;;;;EAAA,OAAA,YAAA,CACL,SAAA,UACA,KAAA,WACA,QAAA,YACC,eAAA;EAgBmB;;;EAAA,OAAf,cAAA,CAAe,IAAA,aAAiB,eAAA;AAAA"}
package/dist/index.d.ts CHANGED
@@ -2,12 +2,15 @@ import { BasePluginConfig, IAppRouter, ToPlugin } from "./shared/src/plugin.js";
2
2
  import { CacheConfig } from "./shared/src/cache.js";
3
3
  import { StreamExecutionSettings } from "./shared/src/execute.js";
4
4
  import { isSQLTypeMarker, sql } from "./shared/src/sql/helpers.js";
5
+ import "./shared/src/index.js";
5
6
  import { CacheManager } from "./cache/index.js";
6
7
  import { DatabaseCredential, GenerateDatabaseCredentialRequest, LakebasePoolConfig, RequestedClaims, RequestedClaimsPermissionSet, RequestedResource, createLakebasePool, generateDatabaseCredential, getLakebaseOrmConfig, getLakebasePgConfig, getUsernameWithApiLookup, getWorkspaceClient } from "./connectors/lakebase/index.js";
7
8
  import { getExecutionContext } from "./context/execution-context.js";
9
+ import "./context/index.js";
8
10
  import { ITelemetry, TelemetryConfig } from "./telemetry/types.js";
9
11
  import { Counter, Histogram, SeverityNumber, Span, SpanStatusCode } from "./telemetry/index.js";
10
12
  import { createApp } from "./core/appkit.js";
13
+ import "./core/index.js";
11
14
  import { AppKitError } from "./errors/base.js";
12
15
  import { AuthenticationError } from "./errors/authentication.js";
13
16
  import { ConfigurationError } from "./errors/configuration.js";
@@ -19,13 +22,16 @@ import { TunnelError } from "./errors/tunnel.js";
19
22
  import { ValidationError } from "./errors/validation.js";
20
23
  import { Plugin } from "./plugin/plugin.js";
21
24
  import { toPlugin } from "./plugin/to-plugin.js";
22
- import { analytics } from "./plugins/analytics/analytics.js";
25
+ import "./plugin/index.js";
23
26
  import { ResourcePermission, ResourceType } from "./registry/types.generated.js";
24
27
  import { ConfigSchema, PluginManifest, ResourceEntry, ResourceFieldEntry, ResourceRequirement, ValidationResult } from "./registry/types.js";
25
28
  import { getPluginManifest, getResourceRequirements } from "./registry/manifest-loader.js";
26
29
  import { ResourceRegistry } from "./registry/resource-registry.js";
30
+ import "./registry/index.js";
31
+ import { analytics } from "./plugins/analytics/analytics.js";
27
32
  import { genie } from "./plugins/genie/genie.js";
28
33
  import { lakebase } from "./plugins/lakebase/lakebase.js";
29
34
  import { server } from "./plugins/server/index.js";
35
+ import "./plugins/index.js";
30
36
  import { appKitTypesPlugin } from "./type-generator/vite-plugin.js";
31
37
  export { AppKitError, AuthenticationError, type BasePluginConfig, type CacheConfig, CacheManager, type ConfigSchema, ConfigurationError, ConnectionError, type Counter, type DatabaseCredential, ExecutionError, type GenerateDatabaseCredentialRequest, type Histogram, type IAppRouter, type ITelemetry, InitializationError, type LakebasePoolConfig, Plugin, type PluginManifest, type RequestedClaims, RequestedClaimsPermissionSet, type RequestedResource, type ResourceEntry, type ResourceFieldEntry, type ResourcePermission, ResourceRegistry, type ResourceRequirement, ResourceType, ServerError, SeverityNumber, type Span, SpanStatusCode, type StreamExecutionSettings, type TelemetryConfig, type ToPlugin, TunnelError, ValidationError, type ValidationResult, analytics, appKitTypesPlugin, createApp, createLakebasePool, generateDatabaseCredential, genie, getExecutionContext, getLakebaseOrmConfig, getLakebasePgConfig, getPluginManifest, getResourceRequirements, getUsernameWithApiLookup, getWorkspaceClient, isSQLTypeMarker, lakebase, server, sql, toPlugin };
@@ -1,8 +1,9 @@
1
1
  import { TunnelConnection } from "../shared/src/tunnel.js";
2
- import * as express0 from "express";
2
+ import "../shared/src/index.js";
3
+ import * as express$1 from "express";
3
4
 
4
5
  //#region src/plugin/dev-reader.d.ts
5
- type TunnelConnectionGetter = (req: express0.Request) => TunnelConnection | null;
6
+ type TunnelConnectionGetter = (req: express$1.Request) => TunnelConnection | null;
6
7
  /**
7
8
  * This class is used to read files from the local filesystem in dev mode
8
9
  * through the WebSocket tunnel.
@@ -13,8 +14,8 @@ declare class DevFileReader {
13
14
  private constructor();
14
15
  static getInstance(): DevFileReader;
15
16
  registerTunnelGetter(getter: TunnelConnectionGetter): void;
16
- readFile(filePath: string, req: express0.Request): Promise<string>;
17
- readdir(dirPath: string, req: express0.Request): Promise<string[]>;
17
+ readFile(filePath: string, req: express$1.Request): Promise<string>;
18
+ readdir(dirPath: string, req: express$1.Request): Promise<string[]>;
18
19
  }
19
20
  //#endregion
20
21
  export { DevFileReader };
@@ -1 +1 @@
1
- {"version":3,"file":"dev-reader.d.ts","names":[],"sources":["../../src/plugin/dev-reader.ts"],"sourcesContent":[],"mappings":";;;;KAQK,sBAAA,SAAsB,QAAA,CACF,YACpB;;;AAT0C;;AAOpB,cAQd,aAAA,CAPY;iBACpB,QAAA;EAAgB,QAAA,mBAAA;EAMR,QAAA,WAAa,CAAA;EAAA,OAAA,WAAA,CAAA,CAAA,EAMF,aANE;sBAMF,CAAA,MAAA,EA+BO,sBA/BP,CAAA,EAAA,IAAA;UA+BO,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,EAAsB,QAAA,CAM1B,OANI,CAAA,EAO1B,OAP0B,CAAA,MAAA,CAAA;SAAsB,CAAA,OAM1B,EAAA,MAAA,EAAA,GAAA,EACf,QAAA,CAiCe,OAlCA,CAAA,EAmCtB,OAnCsB,CAAA,MAAA,EAAA,CAAA"}
1
+ {"version":3,"file":"dev-reader.d.ts","names":[],"sources":["../../src/plugin/dev-reader.ts"],"mappings":";;;;;KAQK,sBAAA,IACH,GAAA,EADyB,SAAA,CACF,OAAA,KACpB,gBAAA;;;;AAT0C;cAelC,aAAA;EAAA,eACI,QAAA;EAAA,QACP,mBAAA;EAAA,QAED,WAAA,CAAA;EAAA,OAEA,WAAA,CAAA,GAAe,aAAA;EA+BtB,oBAAA,CAAqB,MAAA,EAAQ,sBAAA;EAIvB,QAAA,CACJ,QAAA,UACA,GAAA,EANiD,SAAA,CAM1B,OAAA,GACtB,OAAA;EA+BG,OAAA,CACJ,OAAA,UACA,GAAA,EAjCQ,SAAA,CAiCe,OAAA,GACtB,OAAA;AAAA"}
@@ -0,0 +1,4 @@
1
+ import { ToPlugin } from "../shared/src/plugin.js";
2
+ import "../shared/src/index.js";
3
+ import { Plugin } from "./plugin.js";
4
+ import { toPlugin } from "./to-plugin.js";
@@ -1,14 +1,16 @@
1
1
  import { BasePlugin, BasePluginConfig, IAppResponse, PluginEndpointMap, PluginPhase, RouteConfig } from "../shared/src/plugin.js";
2
2
  import { PluginExecutionSettings, StreamExecuteHandler, StreamExecutionSettings } from "../shared/src/execute.js";
3
+ import "../shared/src/index.js";
3
4
  import { CacheManager } from "../cache/index.js";
4
5
  import { ITelemetry } from "../telemetry/types.js";
6
+ import "../telemetry/index.js";
5
7
  import { AppManager } from "../app/index.js";
6
8
  import { StreamManager } from "../stream/stream-manager.js";
9
+ import "../stream/index.js";
7
10
  import { DevFileReader } from "./dev-reader.js";
8
11
  import express from "express";
9
12
 
10
13
  //#region src/plugin/plugin.d.ts
11
-
12
14
  /**
13
15
  * Base abstract class for creating AppKit plugins.
14
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","names":[],"sources":["../../src/plugin/plugin.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AAiJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAsB,uBACJ,mBAAmB,6BACxB;oBAyBmB;;mBAtBb;iBACF;2BACU;2BACA;uBACJ;;;;;;;;;gBAWP;;;;;sBAOgB;kBAWd,OAAA,CAAQ;WAIb;kBAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8CJ,OAAA,CAAQ;;;;;;;kCA6Db,kBACD,qBAAqB,aAChB,4CACO;qCA2DF,gBAAgB,QAAQ,aAC7B,4CAER,QAAQ;;sCA0BD,OAAA,CAAQ,gBACR"}
1
+ {"version":3,"file":"plugin.d.ts","names":[],"sources":["../../src/plugin/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;AAiJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAsB,MAAA,iBACJ,gBAAA,GAAmB,gBAAA,aACxB,UAAA;EAAA,UAyBW,MAAA,EAAQ,OAAA;EAAA,UAvBpB,OAAA;EAAA,UACA,KAAA,EAAO,YAAA;EAAA,UACP,GAAA,EAAK,UAAA;EAAA,UACL,aAAA,EAAe,aAAA;EAAA,UACf,aAAA,EAAe,aAAA;EAAA,UACf,SAAA,EAAW,UAAA;EA4MW;EAAA,QAzMxB,mBAAA;EAyMN;;;;;;EAAA,OAjMK,KAAA,EAAO,WAAA;EAyNa;;;EApN3B,IAAA;cAEsB,MAAA,EAAQ,OAAA;EAW9B,YAAA,CAAa,CAAA,EAAG,OAAA,CAAQ,MAAA;EAIlB,KAAA,CAAA,GAAK,OAAA;EAEX,YAAA,CAAA,GAAgB,iBAAA;EAIhB,qBAAA,CAAA;EA6MQ;;;;;;;;;;;;;;;;;;;;;;;;;EAhLR,OAAA,CAAA;;;;;;;;;;EAaA,MAAA,CAAO,GAAA,EAAK,OAAA,CAAQ,OAAA;;;;;;UAuCZ,uBAAA;EAAA,UAqBQ,aAAA,GAAA,CACd,GAAA,EAAK,YAAA,EACL,EAAA,EAAI,oBAAA,CAAqB,CAAA,GACzB,OAAA,EAAS,uBAAA,EACT,OAAA,YAAgB,OAAA;EAAA,UA0DF,OAAA,GAAA,CACd,EAAA,GAAK,MAAA,GAAS,WAAA,KAAgB,OAAA,CAAQ,CAAA,GACtC,OAAA,EAAS,uBAAA,EACT,OAAA,YACC,OAAA,CAAQ,CAAA;EAAA,UAqBD,gBAAA,CAAiB,IAAA,UAAc,IAAA;EAAA,UAI/B,KAAA,YAAA,CACR,MAAA,EAAQ,OAAA,CAAQ,MAAA,EAChB,MAAA,EAAQ,WAAA;EAAA,QAUF,qBAAA;EAAA,QAaA,kBAAA;EAAA,QAqCM,wBAAA;EAAA,QAqBN,iBAAA;AAAA"}
@@ -1,7 +1,7 @@
1
1
  import { ToPlugin } from "../shared/src/plugin.js";
2
+ import "../shared/src/index.js";
2
3
 
3
4
  //#region src/plugin/to-plugin.d.ts
4
-
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"to-plugin.d.ts","names":[],"sources":["../../src/plugin/to-plugin.ts"],"sourcesContent":[],"mappings":";;;;;;AAKA;AAAwB,iBAAR,QAAQ,CAAA,CAAA,EAAA,CAAA,EAAA,UAAA,MAAA,CAAA,CAAA,MAAA,EACd,CADc,EAAA,IAAA,EAEhB,CAFgB,CAAA,EAGrB,QAHqB,CAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,CAAA"}
1
+ {"version":3,"file":"to-plugin.d.ts","names":[],"sources":["../../src/plugin/to-plugin.ts"],"mappings":";;;;;;;iBAKgB,QAAA,wBAAA,CACd,MAAA,EAAQ,CAAA,EACR,IAAA,EAAM,CAAA,GACL,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA"}
@@ -1,8 +1,11 @@
1
1
  import { IAppRouter, ToPlugin } from "../../shared/src/plugin.js";
2
2
  import { SQLTypeMarker } from "../../shared/src/sql/types.js";
3
+ import "../../shared/src/index.js";
3
4
  import { Plugin } from "../../plugin/plugin.js";
4
- import { IAnalyticsConfig } from "./types.js";
5
+ import "../../plugin/index.js";
5
6
  import { PluginManifest } from "../../registry/types.js";
7
+ import "../../registry/index.js";
8
+ import { IAnalyticsConfig } from "./types.js";
6
9
  import { WorkspaceClient } from "@databricks/sdk-experimental";
7
10
  import express from "express";
8
11
 
@@ -64,5 +67,5 @@ declare class AnalyticsPlugin extends Plugin {
64
67
  */
65
68
  declare const analytics: ToPlugin<typeof AnalyticsPlugin, IAnalyticsConfig, "analytics">;
66
69
  //#endregion
67
- export { analytics };
70
+ export { AnalyticsPlugin, analytics };
68
71
  //# sourceMappingURL=analytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","names":[],"sources":["../../../src/plugins/analytics/analytics.ts"],"sourcesContent":[],"mappings":";;;;;;;;;cA2Ba,eAAA,SAAwB,MAAA;;;mBAAR;EAAhB,iBAAA,WAAgB,EAAA,MAAA;EAAA,UAAA,MAAA,EAOD,gBAPC;UAAA,SAAA;UAOD,cAAA;aAMN,CAAA,MAAA,EAAA,gBAAA;cAWC,CAAA,MAAA,EAAA,UAAA,CAAA,EAAA,IAAA;;;;;mBAoEN,CAAA,GAAA,EA1CR,OAAA,CAAQ,OA0CA,EAAA,GAAA,EAzCR,OAAA,CAAQ,QAyCA,CAAA,EAxCZ,OAwCY,CAAA,IAAA,CAAA;;;;;mBAkHJ,CAAA,GAAA,EAnHJ,OAAA,CAAQ,OAmHJ,EAAA,GAAA,EAlHJ,OAAA,CAAQ,QAkHJ,CAAA,EAjHR,OAiHQ,CAAA,IAAA,CAAA;;;;;;;;;;;;;;AAsDb;;OAAsB,CAAA,KAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAxDL,MAwDK,CAAA,MAAA,EAxDU,aAwDV,GAAA,IAAA,GAAA,SAAA,CAAA,EAAA,gBAAA,CAAA,EAvDC,MAuDD,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,EAtDT,WAsDS,CAAA,EArDjB,OAqDiB,CAAA,GAAA,CAAA;;;;0CA5BD,yCAER,cACR,QAAQ;cAIO;;;;;;;;;wCAnCH,eAAe,sDACT,8BACV,gBACR;;;;;;cAqDQ,WAAS,gBAAA,iBAAA"}
1
+ {"version":3,"file":"analytics.d.ts","names":[],"sources":["../../../src/plugins/analytics/analytics.ts"],"mappings":";;;;;;;;;;;;cA4Ba,eAAA,SAAwB,MAAA;EACnC,IAAA;;SAGO,QAAA,EAAuB,cAAA;EAAA,iBAEb,WAAA;EAAA,UACC,MAAA,EAAQ,gBAAA;EAAA,QAGlB,SAAA;EAAA,QACA,cAAA;cAEI,MAAA,EAAQ,gBAAA;EAWpB,YAAA,CAAa,MAAA,EAAQ,UAAA;EAjBK;;;;EA0CpB,iBAAA,CACJ,GAAA,EAAK,OAAA,CAAQ,OAAA,EACb,GAAA,EAAK,OAAA,CAAQ,QAAA,GACZ,OAAA;EAAA;;;;EAsCG,iBAAA,CACJ,GAAA,EAAK,OAAA,CAAQ,OAAA,EACb,GAAA,EAAK,OAAA,CAAQ,QAAA,GACZ,OAAA;EA+GY;;;;;;;;;;;;;;;EAFT,KAAA,CACJ,KAAA,UACA,UAAA,GAAa,MAAA,SAAe,aAAA,sBAC5B,gBAAA,GAAmB,MAAA,eACnB,MAAA,GAAS,WAAA,GACR,OAAA;EA/MsC;;;EAAA,UAuOzB,YAAA,CACd,eAAA,EAAiB,eAAA,EACjB,KAAA,UACA,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,UAAA,aAAuB,SAAA,CAAU,YAAA;EAItC,QAAA,CAAA,GAAY,OAAA;EAzOD;;;;EAiPjB,OAAA,CAAA;;;;2BA5Ce,UAAA,GACA,MAAA,SAAe,aAAA,sBAAiC,gBAAA,GAC1C,MAAA,eAAmB,MAAA,GAC7B,WAAA,KACR,OAAA;EAAA;AAAA;;;;cAqDQ,SAAA,EAAS,QAAA,QAAA,eAAA,EAAA,gBAAA"}
@@ -7,7 +7,7 @@ import "../../plugin/index.js";
7
7
  import { SQLWarehouseConnector } from "../../connectors/sql-warehouse/client.js";
8
8
  import "../../connectors/index.js";
9
9
  import { queryDefaults } from "./defaults.js";
10
- import { analyticsManifest } from "./manifest.js";
10
+ import manifest_default from "./manifest.js";
11
11
  import { QueryProcessor } from "./query.js";
12
12
 
13
13
  //#region src/plugins/analytics/analytics.ts
@@ -16,7 +16,7 @@ const logger = createLogger("analytics");
16
16
  var AnalyticsPlugin = class extends Plugin {
17
17
  name = "analytics";
18
18
  /** Plugin manifest declaring metadata and resource requirements */
19
- static manifest = analyticsManifest;
19
+ static manifest = manifest_default;
20
20
  static description = "Analytics plugin for data analysis";
21
21
  SQLClient;
22
22
  queryProcessor;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","names":[],"sources":["../../../src/plugins/analytics/analytics.ts"],"sourcesContent":["import type { WorkspaceClient } from \"@databricks/sdk-experimental\";\nimport type express from \"express\";\nimport type {\n IAppRouter,\n PluginExecuteConfig,\n SQLTypeMarker,\n StreamExecutionSettings,\n} from \"shared\";\nimport { SQLWarehouseConnector } from \"../../connectors\";\nimport {\n getCurrentUserId,\n getWarehouseId,\n getWorkspaceClient,\n} from \"../../context\";\nimport { createLogger } from \"../../logging/logger\";\nimport { Plugin, toPlugin } from \"../../plugin\";\nimport { queryDefaults } from \"./defaults\";\nimport { analyticsManifest } from \"./manifest\";\nimport { QueryProcessor } from \"./query\";\nimport type {\n AnalyticsQueryResponse,\n IAnalyticsConfig,\n IAnalyticsQueryRequest,\n} from \"./types\";\n\nconst logger = createLogger(\"analytics\");\n\nexport class AnalyticsPlugin extends Plugin {\n name = \"analytics\";\n\n /** Plugin manifest declaring metadata and resource requirements */\n static manifest = analyticsManifest;\n\n protected static description = \"Analytics plugin for data analysis\";\n protected declare config: IAnalyticsConfig;\n\n // analytics services\n private SQLClient: SQLWarehouseConnector;\n private queryProcessor: QueryProcessor;\n\n constructor(config: IAnalyticsConfig) {\n super(config);\n this.config = config;\n this.queryProcessor = new QueryProcessor();\n\n this.SQLClient = new SQLWarehouseConnector({\n timeout: config.timeout,\n telemetry: config.telemetry,\n });\n }\n\n injectRoutes(router: IAppRouter) {\n // Service principal endpoints\n this.route(router, {\n name: \"arrow\",\n method: \"get\",\n path: \"/arrow-result/:jobId\",\n handler: async (req: express.Request, res: express.Response) => {\n await this._handleArrowRoute(req, res);\n },\n });\n\n this.route<AnalyticsQueryResponse>(router, {\n name: \"query\",\n method: \"post\",\n path: \"/query/:query_key\",\n handler: async (req: express.Request, res: express.Response) => {\n await this._handleQueryRoute(req, res);\n },\n });\n }\n\n /**\n * Handle Arrow data download requests.\n * When called via asUser(req), uses the user's Databricks credentials.\n */\n async _handleArrowRoute(\n req: express.Request,\n res: express.Response,\n ): Promise<void> {\n try {\n const { jobId } = req.params;\n const workspaceClient = getWorkspaceClient();\n\n logger.debug(\"Processing Arrow job request for jobId=%s\", jobId);\n\n const event = logger.event(req);\n event?.setComponent(\"analytics\", \"getArrowData\").setContext(\"analytics\", {\n job_id: jobId,\n plugin: this.name,\n });\n\n const result = await this.getArrowData(workspaceClient, jobId);\n\n res.setHeader(\"Content-Type\", \"application/octet-stream\");\n res.setHeader(\"Content-Length\", result.data.length.toString());\n res.setHeader(\"Cache-Control\", \"public, max-age=3600\");\n\n logger.debug(\n \"Sending Arrow buffer: %d bytes for job %s\",\n result.data.length,\n jobId,\n );\n res.send(Buffer.from(result.data));\n } catch (error) {\n logger.error(\"Arrow job error: %O\", error);\n res.status(404).json({\n error: error instanceof Error ? error.message : \"Arrow job not found\",\n plugin: this.name,\n });\n }\n }\n\n /**\n * Handle SQL query execution requests.\n * When called via asUser(req), uses the user's Databricks credentials.\n */\n async _handleQueryRoute(\n req: express.Request,\n res: express.Response,\n ): Promise<void> {\n const { query_key } = req.params;\n const { parameters, format = \"JSON\" } = req.body as IAnalyticsQueryRequest;\n\n // Request-scoped logging with WideEvent tracking\n logger.debug(req, \"Executing query: %s (format=%s)\", query_key, format);\n\n const event = logger.event(req);\n event?.setComponent(\"analytics\", \"executeQuery\").setContext(\"analytics\", {\n query_key,\n format,\n parameter_count: parameters ? Object.keys(parameters).length : 0,\n plugin: this.name,\n });\n\n if (!query_key) {\n res.status(400).json({ error: \"query_key is required\" });\n return;\n }\n\n const queryResult = await this.app.getAppQuery(\n query_key,\n req,\n this.devFileReader,\n );\n\n if (!queryResult) {\n res.status(404).json({ error: \"Query not found\" });\n return;\n }\n\n const { query, isAsUser } = queryResult;\n\n // get execution context - user-scoped if .obo.sql, otherwise service principal\n const executor = isAsUser ? this.asUser(req) : this;\n const userKey = getCurrentUserId();\n const executorKey = isAsUser ? userKey : \"global\";\n\n const queryParameters =\n format === \"ARROW\"\n ? {\n formatParameters: {\n disposition: \"EXTERNAL_LINKS\",\n format: \"ARROW_STREAM\",\n },\n type: \"arrow\",\n }\n : {\n type: \"result\",\n };\n\n const hashedQuery = this.queryProcessor.hashQuery(query);\n\n const defaultConfig: PluginExecuteConfig = {\n ...queryDefaults,\n cache: {\n ...queryDefaults.cache,\n cacheKey: [\n \"analytics:query\",\n query_key,\n JSON.stringify(parameters),\n JSON.stringify(format),\n hashedQuery,\n executorKey,\n ],\n },\n };\n\n const streamExecutionSettings: StreamExecutionSettings = {\n default: defaultConfig,\n };\n\n await executor.executeStream(\n res,\n async (signal) => {\n const processedParams = await this.queryProcessor.processQueryParams(\n query,\n parameters,\n );\n\n const result = await executor.query(\n query,\n processedParams,\n queryParameters.formatParameters,\n signal,\n );\n\n return { type: queryParameters.type, ...result };\n },\n streamExecutionSettings,\n executorKey,\n );\n }\n\n /**\n * Execute a SQL query using the current execution context.\n *\n * When called directly: uses service principal credentials.\n * When called via asUser(req).query(...): uses user's credentials.\n *\n * @example\n * ```typescript\n * // Service principal execution\n * const result = await analytics.query(\"SELECT * FROM table\")\n *\n * // User context execution (in route handler)\n * const result = await this.asUser(req).query(\"SELECT * FROM table\")\n * ```\n */\n async query(\n query: string,\n parameters?: Record<string, SQLTypeMarker | null | undefined>,\n formatParameters?: Record<string, any>,\n signal?: AbortSignal,\n ): Promise<any> {\n const workspaceClient = getWorkspaceClient();\n const warehouseId = await getWarehouseId();\n\n const { statement, parameters: sqlParameters } =\n this.queryProcessor.convertToSQLParameters(query, parameters);\n\n const response = await this.SQLClient.executeStatement(\n workspaceClient,\n {\n statement,\n warehouse_id: warehouseId,\n parameters: sqlParameters,\n ...formatParameters,\n },\n signal,\n );\n\n return response.result;\n }\n\n /**\n * Get Arrow-formatted data for a completed query job.\n */\n protected async getArrowData(\n workspaceClient: WorkspaceClient,\n jobId: string,\n signal?: AbortSignal,\n ): Promise<ReturnType<typeof this.SQLClient.getArrowData>> {\n return await this.SQLClient.getArrowData(workspaceClient, jobId, signal);\n }\n\n async shutdown(): Promise<void> {\n this.streamManager.abortAll();\n }\n\n /**\n * Returns the public exports for the analytics plugin.\n * Note: `asUser()` is automatically added by AppKit.\n */\n exports() {\n return {\n /**\n * Execute a SQL query using service principal credentials.\n */\n query: this.query,\n };\n }\n}\n\n/**\n * @internal\n */\nexport const analytics = toPlugin<\n typeof AnalyticsPlugin,\n IAnalyticsConfig,\n \"analytics\"\n>(AnalyticsPlugin, \"analytics\");\n"],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","names":["manifest"],"sources":["../../../src/plugins/analytics/analytics.ts"],"sourcesContent":["import type { WorkspaceClient } from \"@databricks/sdk-experimental\";\nimport type express from \"express\";\nimport type {\n IAppRouter,\n PluginExecuteConfig,\n SQLTypeMarker,\n StreamExecutionSettings,\n} from \"shared\";\nimport { SQLWarehouseConnector } from \"../../connectors\";\nimport {\n getCurrentUserId,\n getWarehouseId,\n getWorkspaceClient,\n} from \"../../context\";\nimport { createLogger } from \"../../logging/logger\";\nimport { Plugin, toPlugin } from \"../../plugin\";\nimport type { PluginManifest } from \"../../registry\";\nimport { queryDefaults } from \"./defaults\";\nimport manifest from \"./manifest.json\";\nimport { QueryProcessor } from \"./query\";\nimport type {\n AnalyticsQueryResponse,\n IAnalyticsConfig,\n IAnalyticsQueryRequest,\n} from \"./types\";\n\nconst logger = createLogger(\"analytics\");\n\nexport class AnalyticsPlugin extends Plugin {\n name = \"analytics\";\n\n /** Plugin manifest declaring metadata and resource requirements */\n static manifest = manifest as PluginManifest;\n\n protected static description = \"Analytics plugin for data analysis\";\n protected declare config: IAnalyticsConfig;\n\n // analytics services\n private SQLClient: SQLWarehouseConnector;\n private queryProcessor: QueryProcessor;\n\n constructor(config: IAnalyticsConfig) {\n super(config);\n this.config = config;\n this.queryProcessor = new QueryProcessor();\n\n this.SQLClient = new SQLWarehouseConnector({\n timeout: config.timeout,\n telemetry: config.telemetry,\n });\n }\n\n injectRoutes(router: IAppRouter) {\n // Service principal endpoints\n this.route(router, {\n name: \"arrow\",\n method: \"get\",\n path: \"/arrow-result/:jobId\",\n handler: async (req: express.Request, res: express.Response) => {\n await this._handleArrowRoute(req, res);\n },\n });\n\n this.route<AnalyticsQueryResponse>(router, {\n name: \"query\",\n method: \"post\",\n path: \"/query/:query_key\",\n handler: async (req: express.Request, res: express.Response) => {\n await this._handleQueryRoute(req, res);\n },\n });\n }\n\n /**\n * Handle Arrow data download requests.\n * When called via asUser(req), uses the user's Databricks credentials.\n */\n async _handleArrowRoute(\n req: express.Request,\n res: express.Response,\n ): Promise<void> {\n try {\n const { jobId } = req.params;\n const workspaceClient = getWorkspaceClient();\n\n logger.debug(\"Processing Arrow job request for jobId=%s\", jobId);\n\n const event = logger.event(req);\n event?.setComponent(\"analytics\", \"getArrowData\").setContext(\"analytics\", {\n job_id: jobId,\n plugin: this.name,\n });\n\n const result = await this.getArrowData(workspaceClient, jobId);\n\n res.setHeader(\"Content-Type\", \"application/octet-stream\");\n res.setHeader(\"Content-Length\", result.data.length.toString());\n res.setHeader(\"Cache-Control\", \"public, max-age=3600\");\n\n logger.debug(\n \"Sending Arrow buffer: %d bytes for job %s\",\n result.data.length,\n jobId,\n );\n res.send(Buffer.from(result.data));\n } catch (error) {\n logger.error(\"Arrow job error: %O\", error);\n res.status(404).json({\n error: error instanceof Error ? error.message : \"Arrow job not found\",\n plugin: this.name,\n });\n }\n }\n\n /**\n * Handle SQL query execution requests.\n * When called via asUser(req), uses the user's Databricks credentials.\n */\n async _handleQueryRoute(\n req: express.Request,\n res: express.Response,\n ): Promise<void> {\n const { query_key } = req.params;\n const { parameters, format = \"JSON\" } = req.body as IAnalyticsQueryRequest;\n\n // Request-scoped logging with WideEvent tracking\n logger.debug(req, \"Executing query: %s (format=%s)\", query_key, format);\n\n const event = logger.event(req);\n event?.setComponent(\"analytics\", \"executeQuery\").setContext(\"analytics\", {\n query_key,\n format,\n parameter_count: parameters ? Object.keys(parameters).length : 0,\n plugin: this.name,\n });\n\n if (!query_key) {\n res.status(400).json({ error: \"query_key is required\" });\n return;\n }\n\n const queryResult = await this.app.getAppQuery(\n query_key,\n req,\n this.devFileReader,\n );\n\n if (!queryResult) {\n res.status(404).json({ error: \"Query not found\" });\n return;\n }\n\n const { query, isAsUser } = queryResult;\n\n // get execution context - user-scoped if .obo.sql, otherwise service principal\n const executor = isAsUser ? this.asUser(req) : this;\n const userKey = getCurrentUserId();\n const executorKey = isAsUser ? userKey : \"global\";\n\n const queryParameters =\n format === \"ARROW\"\n ? {\n formatParameters: {\n disposition: \"EXTERNAL_LINKS\",\n format: \"ARROW_STREAM\",\n },\n type: \"arrow\",\n }\n : {\n type: \"result\",\n };\n\n const hashedQuery = this.queryProcessor.hashQuery(query);\n\n const defaultConfig: PluginExecuteConfig = {\n ...queryDefaults,\n cache: {\n ...queryDefaults.cache,\n cacheKey: [\n \"analytics:query\",\n query_key,\n JSON.stringify(parameters),\n JSON.stringify(format),\n hashedQuery,\n executorKey,\n ],\n },\n };\n\n const streamExecutionSettings: StreamExecutionSettings = {\n default: defaultConfig,\n };\n\n await executor.executeStream(\n res,\n async (signal) => {\n const processedParams = await this.queryProcessor.processQueryParams(\n query,\n parameters,\n );\n\n const result = await executor.query(\n query,\n processedParams,\n queryParameters.formatParameters,\n signal,\n );\n\n return { type: queryParameters.type, ...result };\n },\n streamExecutionSettings,\n executorKey,\n );\n }\n\n /**\n * Execute a SQL query using the current execution context.\n *\n * When called directly: uses service principal credentials.\n * When called via asUser(req).query(...): uses user's credentials.\n *\n * @example\n * ```typescript\n * // Service principal execution\n * const result = await analytics.query(\"SELECT * FROM table\")\n *\n * // User context execution (in route handler)\n * const result = await this.asUser(req).query(\"SELECT * FROM table\")\n * ```\n */\n async query(\n query: string,\n parameters?: Record<string, SQLTypeMarker | null | undefined>,\n formatParameters?: Record<string, any>,\n signal?: AbortSignal,\n ): Promise<any> {\n const workspaceClient = getWorkspaceClient();\n const warehouseId = await getWarehouseId();\n\n const { statement, parameters: sqlParameters } =\n this.queryProcessor.convertToSQLParameters(query, parameters);\n\n const response = await this.SQLClient.executeStatement(\n workspaceClient,\n {\n statement,\n warehouse_id: warehouseId,\n parameters: sqlParameters,\n ...formatParameters,\n },\n signal,\n );\n\n return response.result;\n }\n\n /**\n * Get Arrow-formatted data for a completed query job.\n */\n protected async getArrowData(\n workspaceClient: WorkspaceClient,\n jobId: string,\n signal?: AbortSignal,\n ): Promise<ReturnType<typeof this.SQLClient.getArrowData>> {\n return await this.SQLClient.getArrowData(workspaceClient, jobId, signal);\n }\n\n async shutdown(): Promise<void> {\n this.streamManager.abortAll();\n }\n\n /**\n * Returns the public exports for the analytics plugin.\n * Note: `asUser()` is automatically added by AppKit.\n */\n exports() {\n return {\n /**\n * Execute a SQL query using service principal credentials.\n */\n query: this.query,\n };\n }\n}\n\n/**\n * @internal\n */\nexport const analytics = toPlugin<\n typeof AnalyticsPlugin,\n IAnalyticsConfig,\n \"analytics\"\n>(AnalyticsPlugin, \"analytics\");\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { IAnalyticsConfig } from "./types.js";
2
+ import { AnalyticsPlugin, analytics } from "./analytics.js";
@@ -1,4 +1,3 @@
1
- import { analyticsManifest } from "./manifest.js";
2
1
  import { AnalyticsPlugin, analytics } from "./analytics.js";
3
2
 
4
3
  export { };