@usageflow/core 0.4.1 → 0.4.3

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/dist/base.d.ts CHANGED
@@ -29,12 +29,13 @@ export declare abstract class UsageFlowAPI {
29
29
  guessLedgerId(request: UsageFlowRequest, overrideUrl?: string): {
30
30
  ledgerId: string;
31
31
  hasLimit: boolean;
32
+ responseTrackingField?: string;
32
33
  };
33
34
  private fetchApiPolicies;
34
35
  private fetchBlockedEndpoints;
35
36
  private fetchApplicationConfig;
36
37
  useAllocationRequest(payload: RequestForAllocation): void;
37
- allocationRequest(request: UsageFlowRequest, payload: RequestForAllocation, metadata: RequestMetadata, hasLimit: boolean): Promise<void>;
38
+ allocationRequest(request: UsageFlowRequest, payload: RequestForAllocation, metadata: RequestMetadata, hasLimit: boolean, responseTrackingField?: string): Promise<void>;
38
39
  /**
39
40
  * Convert routes list to a map for faster lookup
40
41
  */
@@ -67,4 +68,36 @@ export declare abstract class UsageFlowAPI {
67
68
  */
68
69
  decodeJwtUnverified(token: string): Record<string, any> | null;
69
70
  getBlockedEndpoints(): Map<string, boolean>;
71
+ private getByDotNotation;
72
+ /**
73
+ * Extract a value from an object using a dot-notation path
74
+ * Supports nested paths like "data.amount" or "result.items[0].count"
75
+ * Supports wildcard array notation like "items[*].id" to iterate over arrays
76
+ * @param obj - The object to extract the value from
77
+ * @param path - The dot-notation path to the value (e.g., "data.amount" or "items[*].id")
78
+ * @returns The value at the path, or undefined if not found. For wildcard arrays, returns an array of values.
79
+ */
80
+ getValueByPath(obj: any, path: string): any;
81
+ /**
82
+ * Parse and extract a specific cookie value from the Cookie header
83
+ * @param headers The request headers object
84
+ * @param cookieName The name of the cookie to extract (e.g., "session")
85
+ * @returns The cookie value or null if not found
86
+ */
87
+ private getCookieValue;
88
+ /**
89
+ * Parse JWT cookie field format: '[technique=jwt]cookieName[pick=claim]'
90
+ * @param fieldName The field name to parse
91
+ * @returns Object with cookieName and claim, or null if not a JWT cookie format
92
+ */
93
+ private parseJwtCookieField;
94
+ getResponseBody(response: Response): any;
95
+ /**
96
+ * Extract schema from a JavaScript object/array
97
+ * Recursively processes objects, arrays, and primitives to build a schema structure
98
+ * @param obj - The object to extract schema from
99
+ * @param path - The current path in the object hierarchy (for nested objects)
100
+ * @returns Schema object with type information and paths
101
+ */
102
+ extractSchema(obj: any, path?: string): any;
70
103
  }
package/dist/base.js CHANGED
@@ -266,21 +266,23 @@ class UsageFlowAPI {
266
266
  const fieldName = config.identityFieldName;
267
267
  const location = config.identityFieldLocation;
268
268
  const hasLimit = config.hasRateLimit || false;
269
+ const isResponseTrackingEnabled = config.isResponseTrackingEnabled;
270
+ const responseTrackingField = isResponseTrackingEnabled ? config.responseTrackingField : undefined;
269
271
  if (method === config.method && url === config.url) {
270
272
  switch (location) {
271
273
  case "path_params":
272
274
  if ((_a = request.params) === null || _a === void 0 ? void 0 : _a[fieldName]) {
273
- return { ledgerId: `${method} ${url} ${request.params[fieldName]}`, hasLimit };
275
+ return { ledgerId: `${method} ${url} ${request.params[fieldName]}`, hasLimit, responseTrackingField };
274
276
  }
275
277
  break;
276
278
  case "query_params":
277
279
  if ((_b = request.query) === null || _b === void 0 ? void 0 : _b[fieldName]) {
278
- return { ledgerId: `${method} ${url} ${request.query[fieldName]}`, hasLimit };
280
+ return { ledgerId: `${method} ${url} ${request.query[fieldName]}`, hasLimit, responseTrackingField };
279
281
  }
280
282
  break;
281
283
  case "body":
282
284
  if ((_c = request.body) === null || _c === void 0 ? void 0 : _c[fieldName]) {
283
- return { ledgerId: `${method} ${url} ${request.body[fieldName]}`, hasLimit };
285
+ return { ledgerId: `${method} ${url} ${request.body[fieldName]}`, hasLimit, responseTrackingField };
284
286
  }
285
287
  break;
286
288
  case "bearer_token":
@@ -289,21 +291,50 @@ class UsageFlowAPI {
289
291
  if (token) {
290
292
  const claims = this.decodeJwtUnverified(token);
291
293
  if (claims === null || claims === void 0 ? void 0 : claims[fieldName]) {
292
- return { ledgerId: `${method} ${url} ${claims[fieldName]}`, hasLimit };
294
+ return { ledgerId: `${method} ${url} ${claims[fieldName]}`, hasLimit, responseTrackingField };
293
295
  }
294
296
  }
295
297
  break;
296
298
  case "headers": {
297
299
  const headerValue = this.getHeaderValue(request.headers, fieldName);
298
300
  if (headerValue) {
299
- return { ledgerId: `${method} ${url} ${headerValue}`, hasLimit };
301
+ return { ledgerId: `${method} ${url} ${headerValue}`, hasLimit, responseTrackingField };
302
+ }
303
+ break;
304
+ }
305
+ case "cookie": {
306
+ // Handle JWT cookie format: '[technique=jwt]cookieName[pick=claim]'
307
+ const jwtCookieMatch = this.parseJwtCookieField(fieldName);
308
+ if (jwtCookieMatch) {
309
+ const { cookieName, claim } = jwtCookieMatch;
310
+ const cookieValue = this.getCookieValue(request.headers, cookieName);
311
+ if (cookieValue) {
312
+ const claims = this.decodeJwtUnverified(cookieValue);
313
+ if (claims === null || claims === void 0 ? void 0 : claims[claim]) {
314
+ return { ledgerId: `${method} ${url} ${claims[claim]}`, hasLimit, responseTrackingField };
315
+ }
316
+ }
317
+ break;
318
+ }
319
+ // Handle standard cookie access (e.g., "cookie.session" or "session")
320
+ let cookieValue = null;
321
+ if (fieldName.toLowerCase().startsWith('cookie.')) {
322
+ const cookieName = fieldName.substring(7); // Remove "cookie." prefix
323
+ cookieValue = this.getCookieValue(request.headers, cookieName);
324
+ }
325
+ else {
326
+ // Use dot notation for regular headers
327
+ cookieValue = this.getByDotNotation(request.headers, fieldName);
328
+ }
329
+ if (cookieValue) {
330
+ return { ledgerId: `${method} ${url} ${cookieValue}`, hasLimit, responseTrackingField };
300
331
  }
301
332
  break;
302
333
  }
303
334
  }
304
335
  }
305
336
  }
306
- return { ledgerId: `${method} ${url}`, hasLimit: false };
337
+ return { ledgerId: `${method} ${url}`, hasLimit: false, responseTrackingField: undefined };
307
338
  }
308
339
  async fetchApiPolicies() {
309
340
  var _a;
@@ -357,7 +388,7 @@ class UsageFlowAPI {
357
388
  });
358
389
  }
359
390
  }
360
- async allocationRequest(request, payload, metadata, hasLimit) {
391
+ async allocationRequest(request, payload, metadata, hasLimit, responseTrackingField) {
361
392
  if (this.socketManager && this.socketManager.isConnected()) {
362
393
  try {
363
394
  if (hasLimit) {
@@ -386,6 +417,7 @@ class UsageFlowAPI {
386
417
  });
387
418
  request.usageflow.eventId = payload.allocationId;
388
419
  request.usageflow.metadata = metadata;
420
+ request.usageflow.responseTrackingField = responseTrackingField;
389
421
  }
390
422
  }
391
423
  catch (error) {
@@ -522,6 +554,268 @@ class UsageFlowAPI {
522
554
  getBlockedEndpoints() {
523
555
  return this.blockedEndpoints;
524
556
  }
557
+ getByDotNotation(object, path) {
558
+ return path.split('.').reduce((acc, part) => acc === null || acc === void 0 ? void 0 : acc[part], object);
559
+ }
560
+ /**
561
+ * Extract a value from an object using a dot-notation path
562
+ * Supports nested paths like "data.amount" or "result.items[0].count"
563
+ * Supports wildcard array notation like "items[*].id" to iterate over arrays
564
+ * @param obj - The object to extract the value from
565
+ * @param path - The dot-notation path to the value (e.g., "data.amount" or "items[*].id")
566
+ * @returns The value at the path, or undefined if not found. For wildcard arrays, returns an array of values.
567
+ */
568
+ getValueByPath(obj, path) {
569
+ if (!obj || !path) {
570
+ return undefined;
571
+ }
572
+ // Parse path into segments, preserving [*] as a special marker
573
+ const segments = [];
574
+ let currentSegment = '';
575
+ let i = 0;
576
+ while (i < path.length) {
577
+ if (path[i] === '[' && i + 1 < path.length && path[i + 1] === '*') {
578
+ // Found [*]
579
+ if (currentSegment) {
580
+ segments.push(currentSegment);
581
+ currentSegment = '';
582
+ }
583
+ segments.push('*');
584
+ i += 3; // Skip '[', '*', ']'
585
+ }
586
+ else if (path[i] === '[') {
587
+ // Found indexed array access like [0]
588
+ if (currentSegment) {
589
+ segments.push(currentSegment);
590
+ currentSegment = '';
591
+ }
592
+ // Extract the index
593
+ let index = '';
594
+ i++; // Skip '['
595
+ while (i < path.length && path[i] !== ']') {
596
+ index += path[i];
597
+ i++;
598
+ }
599
+ if (index) {
600
+ segments.push(index);
601
+ }
602
+ i++; // Skip ']'
603
+ }
604
+ else if (path[i] === '.') {
605
+ if (currentSegment) {
606
+ segments.push(currentSegment);
607
+ currentSegment = '';
608
+ }
609
+ i++;
610
+ }
611
+ else {
612
+ currentSegment += path[i];
613
+ i++;
614
+ }
615
+ }
616
+ if (currentSegment) {
617
+ segments.push(currentSegment);
618
+ }
619
+ // Recursive helper function to process segments
620
+ const processSegments = (currentObj, segs, segIndex) => {
621
+ if (currentObj === null || currentObj === undefined) {
622
+ return undefined;
623
+ }
624
+ // If we've processed all segments, return the current value
625
+ if (segIndex >= segs.length) {
626
+ return currentObj;
627
+ }
628
+ const segment = segs[segIndex];
629
+ // Handle wildcard array iteration
630
+ if (segment === '*') {
631
+ if (!Array.isArray(currentObj)) {
632
+ return undefined;
633
+ }
634
+ // If this is the last segment, return the first element of the array
635
+ if (segIndex === segs.length - 1) {
636
+ return currentObj.length > 0 ? currentObj[0] : undefined;
637
+ }
638
+ // Otherwise, iterate over the array and return the first valid result
639
+ for (const item of currentObj) {
640
+ const result = processSegments(item, segs, segIndex + 1);
641
+ if (result !== undefined) {
642
+ return result;
643
+ }
644
+ }
645
+ return undefined;
646
+ }
647
+ // Handle regular property access
648
+ const nextObj = currentObj[segment];
649
+ return processSegments(nextObj, segs, segIndex + 1);
650
+ };
651
+ return processSegments(obj, segments, 0);
652
+ }
653
+ /**
654
+ * Parse and extract a specific cookie value from the Cookie header
655
+ * @param headers The request headers object
656
+ * @param cookieName The name of the cookie to extract (e.g., "session")
657
+ * @returns The cookie value or null if not found
658
+ */
659
+ getCookieValue(headers, cookieName) {
660
+ let cookieHeader = this.getHeaderValue(headers, 'cookie');
661
+ if (!cookieHeader) {
662
+ cookieHeader = this.getHeaderValue(headers, 'Cookie');
663
+ }
664
+ if (!cookieHeader) {
665
+ return null;
666
+ }
667
+ // Parse cookies from the Cookie header string
668
+ // Format: "name1=value1; name2=value2; name3=value3"
669
+ const cookies = cookieHeader.split(';').map(cookie => {
670
+ const [name, ...valueParts] = cookie.trim().split('=');
671
+ return {
672
+ name: name.trim(),
673
+ value: valueParts.join('=').trim(), // Handle values that might contain '='
674
+ };
675
+ });
676
+ // Find the cookie with the matching name (case-insensitive)
677
+ const cookie = cookies.find(c => c.name.toLowerCase() === cookieName.toLowerCase());
678
+ return cookie ? cookie.value : null;
679
+ }
680
+ /**
681
+ * Parse JWT cookie field format: '[technique=jwt]cookieName[pick=claim]'
682
+ * @param fieldName The field name to parse
683
+ * @returns Object with cookieName and claim, or null if not a JWT cookie format
684
+ */
685
+ parseJwtCookieField(fieldName) {
686
+ const techniqueMatch = fieldName.match(/^\[technique=([^\]]+)\]/);
687
+ if (!techniqueMatch || techniqueMatch[1] !== 'jwt') {
688
+ return null;
689
+ }
690
+ const pickMatch = fieldName.match(/\[pick=([^\]]+)\]/);
691
+ if (!pickMatch) {
692
+ return null;
693
+ }
694
+ // Extract cookie name: everything between [technique=jwt] and [pick=...]
695
+ const techniqueEnd = techniqueMatch[0].length;
696
+ const pickStart = fieldName.indexOf('[pick=');
697
+ if (pickStart === -1 || pickStart <= techniqueEnd) {
698
+ return null;
699
+ }
700
+ const cookieName = fieldName.substring(techniqueEnd, pickStart);
701
+ if (!cookieName) {
702
+ return null;
703
+ }
704
+ return {
705
+ cookieName,
706
+ claim: pickMatch[1],
707
+ };
708
+ }
709
+ getResponseBody(response) {
710
+ if (response.body) {
711
+ return response.body;
712
+ }
713
+ return null;
714
+ }
715
+ /**
716
+ * Extract schema from a JavaScript object/array
717
+ * Recursively processes objects, arrays, and primitives to build a schema structure
718
+ * @param obj - The object to extract schema from
719
+ * @param path - The current path in the object hierarchy (for nested objects)
720
+ * @returns Schema object with type information and paths
721
+ */
722
+ extractSchema(obj, path = '') {
723
+ // Handle null
724
+ if (obj === null || obj === undefined) {
725
+ return 'null';
726
+ }
727
+ // Handle arrays
728
+ if (Array.isArray(obj)) {
729
+ if (obj.length === 0) {
730
+ return 'array';
731
+ }
732
+ // Get schema of first element as representative
733
+ return {
734
+ type: 'array',
735
+ items: this.extractSchema(obj[0], path),
736
+ };
737
+ }
738
+ // Handle objects
739
+ if (typeof obj === 'object' && obj !== null) {
740
+ const schema = {};
741
+ for (const [key, value] of Object.entries(obj)) {
742
+ const fieldPath = path ? `${path}.${key}` : key;
743
+ if (value === null || value === undefined) {
744
+ schema[key] = {
745
+ type: 'null',
746
+ path: fieldPath,
747
+ };
748
+ }
749
+ else if (typeof value === 'boolean') {
750
+ // Check bool before number (important for type detection)
751
+ schema[key] = {
752
+ type: 'boolean',
753
+ path: fieldPath,
754
+ };
755
+ }
756
+ else if (typeof value === 'number') {
757
+ // Check if it's an integer or float
758
+ if (Number.isInteger(value)) {
759
+ schema[key] = {
760
+ type: 'integer',
761
+ path: fieldPath,
762
+ };
763
+ }
764
+ else {
765
+ schema[key] = {
766
+ type: 'float',
767
+ path: fieldPath,
768
+ };
769
+ }
770
+ }
771
+ else if (typeof value === 'string') {
772
+ schema[key] = {
773
+ type: 'string',
774
+ path: fieldPath,
775
+ };
776
+ }
777
+ else if (Array.isArray(value)) {
778
+ schema[key] = {
779
+ type: 'array',
780
+ path: fieldPath,
781
+ items: value.length > 0 ? this.extractSchema(value[0], fieldPath) : 'unknown',
782
+ };
783
+ }
784
+ else if (typeof value === 'object') {
785
+ schema[key] = {
786
+ type: 'object',
787
+ path: fieldPath,
788
+ properties: this.extractSchema(value, fieldPath),
789
+ };
790
+ }
791
+ else {
792
+ schema[key] = {
793
+ type: typeof value,
794
+ path: fieldPath,
795
+ };
796
+ }
797
+ }
798
+ return schema;
799
+ }
800
+ // Handle primitive types
801
+ if (typeof obj === 'boolean') {
802
+ return 'boolean';
803
+ }
804
+ else if (typeof obj === 'number') {
805
+ if (Number.isInteger(obj)) {
806
+ return 'integer';
807
+ }
808
+ else {
809
+ return 'float';
810
+ }
811
+ }
812
+ else if (typeof obj === 'string') {
813
+ return 'string';
814
+ }
815
+ else {
816
+ return typeof obj;
817
+ }
818
+ }
525
819
  }
526
820
  exports.UsageFlowAPI = UsageFlowAPI;
527
821
  //# sourceMappingURL=base.js.map
package/dist/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -5,6 +5,7 @@ declare global {
5
5
  startTime: number;
6
6
  eventId?: string;
7
7
  metadata?: RequestMetadata;
8
+ responseTrackingField?: string;
8
9
  };
9
10
  baseUrl: string;
10
11
  }
@@ -15,6 +16,7 @@ declare global {
15
16
  startTime: number;
16
17
  eventId?: string;
17
18
  metadata?: RequestMetadata;
19
+ responseTrackingField?: string;
18
20
  };
19
21
  }
20
22
  }
@@ -24,6 +26,7 @@ declare global {
24
26
  startTime: number;
25
27
  eventId?: string;
26
28
  metadata?: RequestMetadata;
29
+ responseTrackingField?: string;
27
30
  };
28
31
  }
29
32
  }
@@ -57,6 +60,8 @@ export interface UsageFlowConfig {
57
60
  identityFieldName?: string;
58
61
  identityFieldLocation?: string;
59
62
  hasRateLimit?: boolean;
63
+ responseTrackingField?: string;
64
+ isResponseTrackingEnabled?: boolean;
60
65
  }
61
66
  export interface BlockedEndpoint {
62
67
  method: string;
@@ -120,6 +125,7 @@ export interface UsageFlowRequest {
120
125
  eventId?: string;
121
126
  metadata?: RequestMetadata;
122
127
  startTime?: number;
128
+ responseTrackingField?: string;
123
129
  };
124
130
  routeOptions?: {
125
131
  url: string;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwFA,MAAa,cAAe,SAAQ,KAAK;IACrC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACjC,CAAC;CACJ;AALD,wCAKC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA+FA,MAAa,cAAe,SAAQ,KAAK;IACrC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACjC,CAAC;CACJ;AALD,wCAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usageflow/core",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Core functionality for UsageFlow integrations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",