@feasibleone/blong 1.23.0 → 1.24.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,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.24.0](https://github.com/feasibleone/blong/compare/blong-v1.23.0...blong-v1.24.0) (2026-08-19)
4
+
5
+
6
+ ### Features
7
+
8
+ * master-detail handling ([03c5bbd](https://github.com/feasibleone/blong/commit/03c5bbd9401a82a9427577e7611f2622aadee4e5))
9
+ * redis adapter and blong-gateway ([c28a68f](https://github.com/feasibleone/blong/commit/c28a68f5f9cfc2398771cca05c4366efc147eb6e))
10
+ * resolve some AI agent frictions ([13ca27f](https://github.com/feasibleone/blong/commit/13ca27f09f0271a25ea7ad45a2ce3f73bf6710e0))
11
+ * resolve some AI agent frictions and improve the framework features ([23b6986](https://github.com/feasibleone/blong/commit/23b69863b458e97f1dad249fcdeec5e182a69b74))
12
+
3
13
  ## [1.23.0](https://github.com/feasibleone/blong/compare/blong-v1.22.0...blong-v1.23.0) (2026-07-14)
4
14
 
5
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feasibleone/blong",
3
- "version": "1.23.0",
3
+ "version": "1.24.0",
4
4
  "description": "API and DRY focused RAD framework https://feasibleone.github.io/blong-docs",
5
5
  "keywords": [
6
6
  "blong",
@@ -47,7 +47,7 @@
47
47
  "react": "^19.1.0",
48
48
  "tarn": "^3.0.2",
49
49
  "typescript": "^6.0.3",
50
- "@feasibleone/blong-dev": "1.1.0"
50
+ "@feasibleone/blong-dev": "1.2.0"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "heft build --clean;dts-bundle-generator --config dts-gen.config.json",
package/types.ts CHANGED
@@ -68,6 +68,12 @@ export type ServerContext = {
68
68
  // s3?: S3Client;
69
69
  slack?: IncomingWebhook;
70
70
  // vault?: client;
71
+ /** Live redis client shared with derived adapters. */
72
+ redis?: {
73
+ status: string;
74
+ connect(): Promise<unknown>;
75
+ quit(): Promise<unknown>;
76
+ };
71
77
  };
72
78
 
73
79
  export type BrowserContext = {
@@ -699,6 +705,7 @@ export interface IBaseConfig extends TObject<{
699
705
  rpcServer: TBoolean | TObject;
700
706
  restFs: TBoolean | TObject;
701
707
  systemDebug: TBoolean | TObject;
708
+ apiGateway: TBoolean | TObject;
702
709
  }> {
703
710
  additionalProperties: false;
704
711
  }
@@ -732,6 +739,27 @@ export interface ILogger {
732
739
  warn?: LogFn;
733
740
  error?: LogFn;
734
741
  fatal?: LogFn;
742
+ /**
743
+ * Wrap a long-running promise and report progress on this logger.
744
+ *
745
+ * Once the operation runs past `thresholdMs`, a snapshot (from `getProgress`)
746
+ * is logged every `intervalMs` at the given `level` (default 'warn'), followed
747
+ * by a completion line. Delegates to the shared `withProgress` helper from
748
+ * `@feasibleone/blong-lib`.
749
+ *
750
+ * @example
751
+ * await runtime.log.progress('schema sync', syncPromise, {getProgress: () => ({done: 1, total: 2})});
752
+ */
753
+ progress?: <T>(
754
+ label: string,
755
+ promise: Promise<T>,
756
+ options?: {
757
+ getProgress?: () => string | object;
758
+ thresholdMs?: number;
759
+ intervalMs?: number;
760
+ level?: 'info' | 'warn';
761
+ },
762
+ ) => Promise<T>;
735
763
  }
736
764
 
737
765
  export interface IStep {
@@ -774,6 +802,10 @@ export type GatewaySchema = (
774
802
  subject?: string;
775
803
  destination?: string;
776
804
  operation?: OpenAPIV3_1.OperationObject | OpenAPIV2.OperationObject;
805
+ /** Metering metadata threaded into the Fastify route config by Gateway.ts. */
806
+ bundle?: string;
807
+ creditCost?: number;
808
+ meter?: boolean;
777
809
  };
778
810
 
779
811
  export type SchemaObject = OpenAPIV3_1.SchemaObject | OpenAPIV2.SchemaObject;
@@ -876,6 +908,17 @@ export interface ILib {
876
908
  render: (what: object[] | object) => object;
877
909
  crockfordEncode: (data: Uint8Array) => string;
878
910
  crockfordDecode: (data: string) => Uint8Array;
911
+ withProgress: <T>(
912
+ log: {info?: LogFn; warn?: LogFn} | undefined,
913
+ label: string,
914
+ promise: Promise<T>,
915
+ options?: {
916
+ getProgress?: () => string | object;
917
+ thresholdMs?: number;
918
+ intervalMs?: number;
919
+ level?: 'info' | 'warn';
920
+ },
921
+ ) => Promise<T>;
879
922
  }
880
923
 
881
924
  export type ValidationFn = () => GatewaySchema;
package/dist/knex.js DELETED
@@ -1,7 +0,0 @@
1
- // Bundled Knex TypeScript Declaration File
2
- // Generated from: https://github.com/knex/knex/blob/master/types/index.d.ts
3
- // All transitive dependencies have been replaced with suitable alternatives or unknown types
4
- // TypeScript Version: 4.1+
5
- export default knex;
6
- export { Knex };
7
- //# sourceMappingURL=knex.js.map
package/dist/knex.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"knex.js","sourceRoot":"","sources":["../knex.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,4EAA4E;AAC5E,6FAA6F;AAC7F,2BAA2B;AAy/F3B,eAAe,IAAI,CAAC;AACpB,OAAO,EAAC,IAAI,EAAC,CAAC"}
package/dist/model.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=model.js.map
package/dist/model.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../model.ts"],"names":[],"mappings":""}