@feasibleone/blong 1.12.3 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.13.0](https://github.com/feasibleone/blong/compare/blong-v1.12.4...blong-v1.13.0) (2026-03-29)
4
+
5
+
6
+ ### Features
7
+
8
+ * implement blong-ui metadata-driven browser UI framework ([#103](https://github.com/feasibleone/blong/issues/103)) ([b793e3a](https://github.com/feasibleone/blong/commit/b793e3ab7404c00608b6663db634bf9d9c4c3753))
9
+
10
+ ## [1.12.4](https://github.com/feasibleone/blong/compare/blong-v1.12.3...blong-v1.12.4) (2026-03-24)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * type generation ([425c3ca](https://github.com/feasibleone/blong/commit/425c3cac5863253c39138a3245be876f0e0a74dd))
16
+
3
17
  ## [1.12.3](https://github.com/feasibleone/blong/compare/blong-v1.12.2...blong-v1.12.3) (2026-03-23)
4
18
 
5
19
 
package/dist/types.d.ts CHANGED
@@ -17580,7 +17580,12 @@ export type ServerContext = {
17580
17580
  mongodb?: MongoClient;
17581
17581
  slack?: IncomingWebhook;
17582
17582
  };
17583
- export type BrowserContext = {};
17583
+ export type BrowserContext = {
17584
+ /** TanStack Query client instance (injected by the browser platform). */
17585
+ queryClient?: unknown;
17586
+ /** React Router navigate function. */
17587
+ navigate?: (to: string) => void;
17588
+ };
17584
17589
  export type AdapterContext = ServerContext & BrowserContext;
17585
17590
  export interface ILog {
17586
17591
  logger: (level: Level, bindings: object) => ILogger;
@@ -18039,6 +18044,8 @@ export type LibFn = <T>(...params: unknown[]) => T;
18039
18044
  export interface IRemoteHandler {
18040
18045
  [name: string]: PortHandlerBound;
18041
18046
  }
18047
+ export interface ISchema {
18048
+ }
18042
18049
  export interface IHandlerProxy<T> {
18043
18050
  config: T;
18044
18051
  handler: {
@@ -18046,7 +18053,7 @@ export interface IHandlerProxy<T> {
18046
18053
  params?: object;
18047
18054
  cause?: Error;
18048
18055
  }) => ITypedError;
18049
- } & IRemoteHandler;
18056
+ } & ISchema & IRemoteHandler;
18050
18057
  lib: ILib & {
18051
18058
  [name: string]: LibFn;
18052
18059
  };
@@ -18105,7 +18112,7 @@ export declare const library: <T = Record<string, unknown>>(definition: Lib<T>)
18105
18112
  export declare const validation: (validation: ValidationDefinition) => ValidationDefinition;
18106
18113
  export declare const api: (api: ApiDefinition) => ApiDefinition;
18107
18114
  export declare const validationHandlers: (handlers: Record<string, TFunction<[
18108
- TObject<{}>
18115
+ ApiSchema
18109
18116
  ]>>) => ValidationDefinition;
18110
18117
  export declare const realm: <T extends TObject>(definition: SolutionFactory<T>) => SolutionFactory<T>;
18111
18118
  export declare const server: <T extends TObject>(definition: SolutionFactory<T>) => SolutionFactory<T>;
@@ -18116,15 +18123,15 @@ export declare const orchestrator: <T, C = AdapterContext>(definition: IAdapterF
18116
18123
  export type Kinds = "lib" | "validation" | "api" | "solution" | "server" | "browser" | "adapter" | "orchestrator" | "handler";
18117
18124
  export declare const kind: (what: {}) => Kinds | undefined;
18118
18125
  declare const _default: {
18119
- handler: <T = Record<string, unknown>, C = ServerContext>(definition: Definition<T, C>) => Definition<T, C>;
18126
+ handler: <T = Record<string, unknown>, C = AdapterContext>(definition: Definition<T, C>) => Definition<T, C>;
18120
18127
  library: <T = Record<string, unknown>>(definition: Lib<T>) => Lib<T>;
18121
18128
  validation: (validation: ValidationDefinition) => ValidationDefinition;
18122
18129
  api: (api: ApiDefinition) => ApiDefinition;
18123
18130
  realm: <T extends TObject>(definition: SolutionFactory<T>) => SolutionFactory<T>;
18124
18131
  server: <T extends TObject>(definition: SolutionFactory<T>) => SolutionFactory<T>;
18125
18132
  browser: <T extends TObject>(definition: SolutionFactory<T>) => SolutionFactory<T>;
18126
- adapter: <T, C = ServerContext>(definition: IAdapterFactory<T, C>) => IAdapterFactory<T, C>;
18127
- orchestrator: <T, C = ServerContext>(definition: IAdapterFactory<T, C>) => IAdapterFactory<T, C>;
18133
+ adapter: <T, C = AdapterContext>(definition: IAdapterFactory<T, C>) => IAdapterFactory<T, C>;
18134
+ orchestrator: <T, C = AdapterContext>(definition: IAdapterFactory<T, C>) => IAdapterFactory<T, C>;
18128
18135
  kind: (what: {}) => Kinds | undefined;
18129
18136
  };
18130
18137
 
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feasibleone/blong",
3
- "version": "1.12.3",
3
+ "version": "1.13.0",
4
4
  "description": "API and DRY focused RAD framework https://feasibleone.github.io/blong-docs",
5
5
  "keywords": [
6
6
  "blong",
@@ -30,7 +30,7 @@
30
30
  "@rushstack/heft": "^1.2.6",
31
31
  "@rushstack/heft-lint-plugin": "^1.2.6",
32
32
  "@rushstack/heft-typescript-plugin": "^1.3.1",
33
- "@slack/types": "^2.20.0",
33
+ "@slack/types": "^2.20.1",
34
34
  "@slack/webhook": "^7.0.7",
35
35
  "@types/request": "^2.48.13",
36
36
  "@types/ut-function.merge": "file:./types/ut-function.merge",
package/types.ts CHANGED
@@ -61,7 +61,12 @@ export type ServerContext = {
61
61
  // vault?: client;
62
62
  };
63
63
 
64
- export type BrowserContext = {};
64
+ export type BrowserContext = {
65
+ /** TanStack Query client instance (injected by the browser platform). */
66
+ queryClient?: unknown;
67
+ /** React Router navigate function. */
68
+ navigate?: (to: string) => void;
69
+ };
65
70
 
66
71
  export type AdapterContext = ServerContext & BrowserContext;
67
72
 
@@ -569,13 +574,15 @@ export type LibFn = <T>(...params: unknown[]) => T;
569
574
  export interface IRemoteHandler {
570
575
  [name: string]: PortHandlerBound;
571
576
  }
577
+ export interface ISchema {}
572
578
  export interface IHandlerProxy<T> {
573
579
  config: T;
574
580
  handler: {
575
581
  [name: `error${string}`]: (
576
582
  message?: string | {params?: object; cause?: Error},
577
583
  ) => ITypedError;
578
- } & IRemoteHandler;
584
+ } & ISchema &
585
+ IRemoteHandler;
579
586
  lib: ILib & {
580
587
  [name: string]: LibFn;
581
588
  };
@@ -653,7 +660,7 @@ export const api = (api: ApiDefinition): ApiDefinition =>
653
660
  Object.defineProperty(api, Kind, {value: 'api'});
654
661
 
655
662
  export const validationHandlers: (
656
- handlers: Record<string, TFunction<[TObject<{}>]>>,
663
+ handlers: Record<string, TFunction<[ApiSchema]>>,
657
664
  ) => ValidationDefinition = handlers =>
658
665
  validation(() =>
659
666
  Object.fromEntries(