@betterportal/framework 0.0.1

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 (194) hide show
  1. package/README.md +13 -0
  2. package/lib/adapters/h3.d.ts +51 -0
  3. package/lib/adapters/h3.d.ts.map +1 -0
  4. package/lib/adapters/h3.js +1120 -0
  5. package/lib/adapters/h3.js.map +1 -0
  6. package/lib/codegen/cli.d.ts +3 -0
  7. package/lib/codegen/cli.d.ts.map +1 -0
  8. package/lib/codegen/cli.js +82 -0
  9. package/lib/codegen/cli.js.map +1 -0
  10. package/lib/codegen/emitter.d.ts +7 -0
  11. package/lib/codegen/emitter.d.ts.map +1 -0
  12. package/lib/codegen/emitter.js +453 -0
  13. package/lib/codegen/emitter.js.map +1 -0
  14. package/lib/codegen/init.d.ts +3 -0
  15. package/lib/codegen/init.d.ts.map +1 -0
  16. package/lib/codegen/init.js +90 -0
  17. package/lib/codegen/init.js.map +1 -0
  18. package/lib/codegen/scanner.d.ts +56 -0
  19. package/lib/codegen/scanner.d.ts.map +1 -0
  20. package/lib/codegen/scanner.js +484 -0
  21. package/lib/codegen/scanner.js.map +1 -0
  22. package/lib/codegen/validate.d.ts +14 -0
  23. package/lib/codegen/validate.d.ts.map +1 -0
  24. package/lib/codegen/validate.js +166 -0
  25. package/lib/codegen/validate.js.map +1 -0
  26. package/lib/contracts/auth.d.ts +160 -0
  27. package/lib/contracts/auth.d.ts.map +1 -0
  28. package/lib/contracts/auth.js +123 -0
  29. package/lib/contracts/auth.js.map +1 -0
  30. package/lib/contracts/binding.d.ts +169 -0
  31. package/lib/contracts/binding.d.ts.map +1 -0
  32. package/lib/contracts/binding.js +69 -0
  33. package/lib/contracts/binding.js.map +1 -0
  34. package/lib/contracts/common.d.ts +23 -0
  35. package/lib/contracts/common.d.ts.map +1 -0
  36. package/lib/contracts/common.js +18 -0
  37. package/lib/contracts/common.js.map +1 -0
  38. package/lib/contracts/config.d.ts +93 -0
  39. package/lib/contracts/config.d.ts.map +1 -0
  40. package/lib/contracts/config.js +62 -0
  41. package/lib/contracts/config.js.map +1 -0
  42. package/lib/contracts/controlPlane.d.ts +63 -0
  43. package/lib/contracts/controlPlane.d.ts.map +1 -0
  44. package/lib/contracts/controlPlane.js +2 -0
  45. package/lib/contracts/controlPlane.js.map +1 -0
  46. package/lib/contracts/json.d.ts +9 -0
  47. package/lib/contracts/json.d.ts.map +1 -0
  48. package/lib/contracts/json.js +6 -0
  49. package/lib/contracts/json.js.map +1 -0
  50. package/lib/contracts/manifest.d.ts +158 -0
  51. package/lib/contracts/manifest.d.ts.map +1 -0
  52. package/lib/contracts/manifest.js +40 -0
  53. package/lib/contracts/manifest.js.map +1 -0
  54. package/lib/contracts/observability.d.ts +77 -0
  55. package/lib/contracts/observability.d.ts.map +1 -0
  56. package/lib/contracts/observability.js +99 -0
  57. package/lib/contracts/observability.js.map +1 -0
  58. package/lib/contracts/platformConfig.d.ts +635 -0
  59. package/lib/contracts/platformConfig.d.ts.map +1 -0
  60. package/lib/contracts/platformConfig.js +256 -0
  61. package/lib/contracts/platformConfig.js.map +1 -0
  62. package/lib/contracts/registry.d.ts +104 -0
  63. package/lib/contracts/registry.d.ts.map +1 -0
  64. package/lib/contracts/registry.js +2 -0
  65. package/lib/contracts/registry.js.map +1 -0
  66. package/lib/contracts/route.d.ts +199 -0
  67. package/lib/contracts/route.d.ts.map +1 -0
  68. package/lib/contracts/route.js +26 -0
  69. package/lib/contracts/route.js.map +1 -0
  70. package/lib/contracts/serviceConfig.d.ts +88 -0
  71. package/lib/contracts/serviceConfig.d.ts.map +1 -0
  72. package/lib/contracts/serviceConfig.js +45 -0
  73. package/lib/contracts/serviceConfig.js.map +1 -0
  74. package/lib/contracts/streaming.d.ts +76 -0
  75. package/lib/contracts/streaming.d.ts.map +1 -0
  76. package/lib/contracts/streaming.js +31 -0
  77. package/lib/contracts/streaming.js.map +1 -0
  78. package/lib/contracts/view.d.ts +149 -0
  79. package/lib/contracts/view.d.ts.map +1 -0
  80. package/lib/contracts/view.js +82 -0
  81. package/lib/contracts/view.js.map +1 -0
  82. package/lib/controlPlane/store.d.ts +24 -0
  83. package/lib/controlPlane/store.d.ts.map +1 -0
  84. package/lib/controlPlane/store.js +70 -0
  85. package/lib/controlPlane/store.js.map +1 -0
  86. package/lib/controlPlane/sync.d.ts +8 -0
  87. package/lib/controlPlane/sync.d.ts.map +1 -0
  88. package/lib/controlPlane/sync.js +24 -0
  89. package/lib/controlPlane/sync.js.map +1 -0
  90. package/lib/controlPlane/types.d.ts +15 -0
  91. package/lib/controlPlane/types.d.ts.map +1 -0
  92. package/lib/controlPlane/types.js +2 -0
  93. package/lib/controlPlane/types.js.map +1 -0
  94. package/lib/index.d.ts +40 -0
  95. package/lib/index.d.ts.map +1 -0
  96. package/lib/index.js +40 -0
  97. package/lib/index.js.map +1 -0
  98. package/lib/runtime/auth/envelope.d.ts +32 -0
  99. package/lib/runtime/auth/envelope.d.ts.map +1 -0
  100. package/lib/runtime/auth/envelope.js +123 -0
  101. package/lib/runtime/auth/envelope.js.map +1 -0
  102. package/lib/runtime/auth/issuer.d.ts +44 -0
  103. package/lib/runtime/auth/issuer.d.ts.map +1 -0
  104. package/lib/runtime/auth/issuer.js +82 -0
  105. package/lib/runtime/auth/issuer.js.map +1 -0
  106. package/lib/runtime/auth/jwks.d.ts +7 -0
  107. package/lib/runtime/auth/jwks.d.ts.map +1 -0
  108. package/lib/runtime/auth/jwks.js +69 -0
  109. package/lib/runtime/auth/jwks.js.map +1 -0
  110. package/lib/runtime/auth/keypair.d.ts +21 -0
  111. package/lib/runtime/auth/keypair.d.ts.map +1 -0
  112. package/lib/runtime/auth/keypair.js +50 -0
  113. package/lib/runtime/auth/keypair.js.map +1 -0
  114. package/lib/runtime/auth/tokens.d.ts +25 -0
  115. package/lib/runtime/auth/tokens.d.ts.map +1 -0
  116. package/lib/runtime/auth/tokens.js +137 -0
  117. package/lib/runtime/auth/tokens.js.map +1 -0
  118. package/lib/runtime/auth/verifier.d.ts +45 -0
  119. package/lib/runtime/auth/verifier.d.ts.map +1 -0
  120. package/lib/runtime/auth/verifier.js +76 -0
  121. package/lib/runtime/auth/verifier.js.map +1 -0
  122. package/lib/runtime/bpHeaders.d.ts +10 -0
  123. package/lib/runtime/bpHeaders.d.ts.map +1 -0
  124. package/lib/runtime/bpHeaders.js +53 -0
  125. package/lib/runtime/bpHeaders.js.map +1 -0
  126. package/lib/runtime/configProvider.d.ts +41 -0
  127. package/lib/runtime/configProvider.d.ts.map +1 -0
  128. package/lib/runtime/configProvider.js +232 -0
  129. package/lib/runtime/configProvider.js.map +1 -0
  130. package/lib/runtime/configStore.d.ts +34 -0
  131. package/lib/runtime/configStore.d.ts.map +1 -0
  132. package/lib/runtime/configStore.js +197 -0
  133. package/lib/runtime/configStore.js.map +1 -0
  134. package/lib/runtime/configTicket.d.ts +49 -0
  135. package/lib/runtime/configTicket.d.ts.map +1 -0
  136. package/lib/runtime/configTicket.js +168 -0
  137. package/lib/runtime/configTicket.js.map +1 -0
  138. package/lib/runtime/h3.d.ts +28 -0
  139. package/lib/runtime/h3.d.ts.map +1 -0
  140. package/lib/runtime/h3.js +199 -0
  141. package/lib/runtime/h3.js.map +1 -0
  142. package/lib/runtime/handler.d.ts +55 -0
  143. package/lib/runtime/handler.d.ts.map +1 -0
  144. package/lib/runtime/handler.js +51 -0
  145. package/lib/runtime/handler.js.map +1 -0
  146. package/lib/runtime/http.d.ts +13 -0
  147. package/lib/runtime/http.d.ts.map +1 -0
  148. package/lib/runtime/http.js +114 -0
  149. package/lib/runtime/http.js.map +1 -0
  150. package/lib/runtime/jsonSchema.d.ts +4 -0
  151. package/lib/runtime/jsonSchema.d.ts.map +1 -0
  152. package/lib/runtime/jsonSchema.js +28 -0
  153. package/lib/runtime/jsonSchema.js.map +1 -0
  154. package/lib/runtime/manifest.d.ts +3 -0
  155. package/lib/runtime/manifest.d.ts.map +1 -0
  156. package/lib/runtime/manifest.js +5 -0
  157. package/lib/runtime/manifest.js.map +1 -0
  158. package/lib/runtime/media.d.ts +20 -0
  159. package/lib/runtime/media.d.ts.map +1 -0
  160. package/lib/runtime/media.js +70 -0
  161. package/lib/runtime/media.js.map +1 -0
  162. package/lib/runtime/registry.d.ts +67 -0
  163. package/lib/runtime/registry.d.ts.map +1 -0
  164. package/lib/runtime/registry.js +290 -0
  165. package/lib/runtime/registry.js.map +1 -0
  166. package/lib/runtime/serviceConfig.d.ts +38 -0
  167. package/lib/runtime/serviceConfig.d.ts.map +1 -0
  168. package/lib/runtime/serviceConfig.js +152 -0
  169. package/lib/runtime/serviceConfig.js.map +1 -0
  170. package/lib/runtime/statusViews.d.ts +23 -0
  171. package/lib/runtime/statusViews.d.ts.map +1 -0
  172. package/lib/runtime/statusViews.js +48 -0
  173. package/lib/runtime/statusViews.js.map +1 -0
  174. package/lib/runtime/stream.d.ts +41 -0
  175. package/lib/runtime/stream.d.ts.map +1 -0
  176. package/lib/runtime/stream.js +92 -0
  177. package/lib/runtime/stream.js.map +1 -0
  178. package/lib/runtime/streamHandler.d.ts +48 -0
  179. package/lib/runtime/streamHandler.d.ts.map +1 -0
  180. package/lib/runtime/streamHandler.js +49 -0
  181. package/lib/runtime/streamHandler.js.map +1 -0
  182. package/lib/runtime/tenantResolution.d.ts +4 -0
  183. package/lib/runtime/tenantResolution.d.ts.map +1 -0
  184. package/lib/runtime/tenantResolution.js +19 -0
  185. package/lib/runtime/tenantResolution.js.map +1 -0
  186. package/lib/runtime/uuid.d.ts +6 -0
  187. package/lib/runtime/uuid.d.ts.map +1 -0
  188. package/lib/runtime/uuid.js +27 -0
  189. package/lib/runtime/uuid.js.map +1 -0
  190. package/lib/runtime/view.d.ts +48 -0
  191. package/lib/runtime/view.d.ts.map +1 -0
  192. package/lib/runtime/view.js +111 -0
  193. package/lib/runtime/view.js.map +1 -0
  194. package/package.json +56 -0
@@ -0,0 +1,77 @@
1
+ import * as av from "anyvali";
2
+ import type { Infer } from "anyvali";
3
+ export declare const ObservabilityValueSchema: av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>;
4
+ export type ObservabilityValue = Infer<typeof ObservabilityValueSchema>;
5
+ export declare const ObservabilityAttributesSchema: av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>;
6
+ export type ObservabilityAttributes = Infer<typeof ObservabilityAttributesSchema>;
7
+ export declare const BetterPortalLogLevelSchema: av.EnumSchema<readonly ["debug", "info", "warn", "error"]>;
8
+ export type BetterPortalLogLevel = Infer<typeof BetterPortalLogLevelSchema>;
9
+ export declare const BetterPortalTraceContextSchema: av.ObjectSchema<{
10
+ traceId: av.StringSchema;
11
+ spanId: av.StringSchema;
12
+ }>;
13
+ export type BetterPortalTraceContext = Infer<typeof BetterPortalTraceContextSchema>;
14
+ export declare const BetterPortalResourceSchema: av.IntersectionSchema<[av.ObjectSchema<{
15
+ serviceName: av.StringSchema;
16
+ serviceVersion: av.OptionalSchema<av.StringSchema>;
17
+ serviceInstanceId: av.OptionalSchema<av.StringSchema>;
18
+ environment: av.OptionalSchema<av.StringSchema>;
19
+ region: av.OptionalSchema<av.StringSchema>;
20
+ }>, av.RecordSchema<av.UnionSchema<[av.StringSchema, av.NumberSchema, av.BoolSchema]>>]>;
21
+ export type BetterPortalResource = Infer<typeof BetterPortalResourceSchema>;
22
+ export type MetricLabelValue = string | number | boolean;
23
+ export type MetricLabels<TLabel extends string = string> = Partial<Record<TLabel, MetricLabelValue>>;
24
+ export type LogAttributeKeys<TMessage extends string> = string extends TMessage ? never : TMessage extends `${string}{${infer TKey}}${infer TRest}` ? TKey | LogAttributeKeys<TRest> : never;
25
+ export type LogAttributes<TMessage extends string> = ObservabilityAttributes & Record<LogAttributeKeys<TMessage>, ObservabilityValue>;
26
+ export type LogAttributeArgs<TMessage extends string> = [LogAttributeKeys<TMessage>] extends [never] ? [attributes?: ObservabilityAttributes] : [attributes: LogAttributes<TMessage>];
27
+ export interface BetterPortalLogger {
28
+ debug<const TMessage extends string>(message: TMessage, ...args: LogAttributeArgs<TMessage>): void;
29
+ info<const TMessage extends string>(message: TMessage, ...args: LogAttributeArgs<TMessage>): void;
30
+ warn<const TMessage extends string>(message: TMessage, ...args: LogAttributeArgs<TMessage>): void;
31
+ error<const TMessage extends string>(message: TMessage, ...args: LogAttributeArgs<TMessage>): void;
32
+ error(message: Error, attributes?: ObservabilityAttributes): void;
33
+ }
34
+ export interface BetterPortalCounter<TLabel extends string = string> {
35
+ increment(value?: number, labels?: MetricLabels<TLabel>): void;
36
+ }
37
+ export interface BetterPortalGauge<TLabel extends string = string> {
38
+ set(value: number, labels?: MetricLabels<TLabel>): void;
39
+ increment(value?: number, labels?: MetricLabels<TLabel>): void;
40
+ decrement(value?: number, labels?: MetricLabels<TLabel>): void;
41
+ }
42
+ export interface BetterPortalHistogram<TLabel extends string = string> {
43
+ observe(value: number, labels?: MetricLabels<TLabel>): void;
44
+ }
45
+ export interface BetterPortalTimer {
46
+ stop(): number;
47
+ }
48
+ export interface BetterPortalMetrics {
49
+ counter<TLabel extends string = string>(name: string, description: string, help: string, labels?: readonly TLabel[]): BetterPortalCounter<TLabel>;
50
+ gauge<TLabel extends string = string>(name: string, description: string, help: string, labels?: readonly TLabel[]): BetterPortalGauge<TLabel>;
51
+ histogram<TLabel extends string = string>(name: string, description: string, help: string, boundaries?: readonly number[], labels?: readonly TLabel[]): BetterPortalHistogram<TLabel>;
52
+ timer(): BetterPortalTimer;
53
+ }
54
+ export interface BetterPortalObservability {
55
+ readonly trace: BetterPortalTraceContext;
56
+ readonly traceId: string;
57
+ readonly spanId: string;
58
+ readonly resource: BetterPortalResource;
59
+ readonly attributes: ObservabilityAttributes;
60
+ readonly logger: BetterPortalLogger;
61
+ readonly metrics: BetterPortalMetrics;
62
+ startSpan(name: string, attributes?: ObservabilityAttributes): BetterPortalObservability;
63
+ setAttribute(key: string, value: ObservabilityValue): BetterPortalObservability;
64
+ setAttributes(attributes: ObservabilityAttributes): BetterPortalObservability;
65
+ end(attributes?: ObservabilityAttributes): void;
66
+ error(error: Error, attributes?: ObservabilityAttributes): void;
67
+ }
68
+ export interface BetterPortalSpan extends BetterPortalObservability {
69
+ readonly name: string;
70
+ }
71
+ export declare function createNoopObservability(input?: {
72
+ name?: string;
73
+ resource?: BetterPortalResource;
74
+ attributes?: ObservabilityAttributes;
75
+ trace?: BetterPortalTraceContext;
76
+ }): BetterPortalObservability;
77
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/contracts/observability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import * as av from "anyvali";
2
+ export const ObservabilityValueSchema = av.union([av.string(), av.number(), av.bool()]);
3
+ export const ObservabilityAttributesSchema = av.record(ObservabilityValueSchema);
4
+ export const BetterPortalLogLevelSchema = av.enum_(["debug", "info", "warn", "error"]);
5
+ export const BetterPortalTraceContextSchema = av.object({
6
+ traceId: av.string().minLength(1),
7
+ spanId: av.string().minLength(1)
8
+ }, { unknownKeys: "strip" });
9
+ export const BetterPortalResourceSchema = av.intersection([
10
+ av.object({
11
+ serviceName: av.string().minLength(1),
12
+ serviceVersion: av.optional(av.string().minLength(1)),
13
+ serviceInstanceId: av.optional(av.string().minLength(1)),
14
+ environment: av.optional(av.string().minLength(1)),
15
+ region: av.optional(av.string().minLength(1))
16
+ }, { unknownKeys: "allow" }),
17
+ av.record(ObservabilityValueSchema)
18
+ ]);
19
+ class NoopCounter {
20
+ increment() { }
21
+ }
22
+ class NoopGauge {
23
+ set() { }
24
+ increment() { }
25
+ decrement() { }
26
+ }
27
+ class NoopHistogram {
28
+ observe() { }
29
+ }
30
+ class DefaultTimer {
31
+ startedAt = performance.now();
32
+ stop() {
33
+ return performance.now() - this.startedAt;
34
+ }
35
+ }
36
+ class NoopMetrics {
37
+ counter() {
38
+ return new NoopCounter();
39
+ }
40
+ gauge() {
41
+ return new NoopGauge();
42
+ }
43
+ histogram() {
44
+ return new NoopHistogram();
45
+ }
46
+ timer() {
47
+ return new DefaultTimer();
48
+ }
49
+ }
50
+ class NoopLogger {
51
+ debug() { }
52
+ info() { }
53
+ warn() { }
54
+ error() { }
55
+ }
56
+ class NoopObservability {
57
+ name;
58
+ resource;
59
+ attributes;
60
+ trace;
61
+ traceId;
62
+ spanId;
63
+ logger;
64
+ metrics;
65
+ constructor(name, resource, attributes = {}, trace) {
66
+ this.name = name;
67
+ this.resource = resource;
68
+ this.attributes = attributes;
69
+ this.trace = trace ?? { traceId: "bp-noop-trace", spanId: name };
70
+ this.traceId = this.trace.traceId;
71
+ this.spanId = this.trace.spanId;
72
+ this.logger = new NoopLogger();
73
+ this.metrics = new NoopMetrics();
74
+ }
75
+ startSpan(name, attributes = {}) {
76
+ return new NoopObservability(name, this.resource, {
77
+ ...this.attributes,
78
+ ...attributes
79
+ }, {
80
+ traceId: this.traceId,
81
+ spanId: `${this.spanId}.${name}`
82
+ });
83
+ }
84
+ setAttribute(key, value) {
85
+ return this.setAttributes({ [key]: value });
86
+ }
87
+ setAttributes(attributes) {
88
+ return new NoopObservability(this.name, this.resource, {
89
+ ...this.attributes,
90
+ ...attributes
91
+ }, this.trace);
92
+ }
93
+ end() { }
94
+ error() { }
95
+ }
96
+ export function createNoopObservability(input) {
97
+ return new NoopObservability(input?.name ?? "betterportal", BetterPortalResourceSchema.parse(input?.resource ?? { serviceName: "betterportal" }), ObservabilityAttributesSchema.parse(input?.attributes ?? {}), input?.trace);
98
+ }
99
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/contracts/observability.ts"],"names":[],"mappings":"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"}