@pymthouse/builder-sdk 0.1.0 → 0.3.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 (77) hide show
  1. package/README.md +66 -0
  2. package/dist/{client-BroVFyIy.d.ts → client-BHfjDvIe.d.ts} +49 -1
  3. package/dist/{client-BhC1YhB1.d.cts → client-CvhJEhjV.d.cts} +49 -1
  4. package/dist/config.cjs +59 -3
  5. package/dist/config.cjs.map +1 -1
  6. package/dist/config.d.cts +8 -1
  7. package/dist/config.d.ts +8 -1
  8. package/dist/config.js +57 -4
  9. package/dist/config.js.map +1 -1
  10. package/dist/device-initiate.cjs +1 -1
  11. package/dist/device-initiate.cjs.map +1 -1
  12. package/dist/device-initiate.js +1 -1
  13. package/dist/device-initiate.js.map +1 -1
  14. package/dist/device.cjs +1 -1
  15. package/dist/device.cjs.map +1 -1
  16. package/dist/device.d.cts +1 -1
  17. package/dist/device.d.ts +1 -1
  18. package/dist/device.js +1 -1
  19. package/dist/device.js.map +1 -1
  20. package/dist/env.cjs +794 -36
  21. package/dist/env.cjs.map +1 -1
  22. package/dist/env.d.cts +2 -2
  23. package/dist/env.d.ts +2 -2
  24. package/dist/env.js +794 -36
  25. package/dist/env.js.map +1 -1
  26. package/dist/gateway/client/index.cjs +492 -0
  27. package/dist/gateway/client/index.cjs.map +1 -0
  28. package/dist/gateway/client/index.d.cts +63 -0
  29. package/dist/gateway/client/index.d.ts +63 -0
  30. package/dist/gateway/client/index.js +489 -0
  31. package/dist/gateway/client/index.js.map +1 -0
  32. package/dist/gateway/index.cjs +16 -0
  33. package/dist/gateway/index.cjs.map +1 -0
  34. package/dist/gateway/index.d.cts +52 -0
  35. package/dist/gateway/index.d.ts +52 -0
  36. package/dist/gateway/index.js +10 -0
  37. package/dist/gateway/index.js.map +1 -0
  38. package/dist/gateway/server/index.cjs +1248 -0
  39. package/dist/gateway/server/index.cjs.map +1 -0
  40. package/dist/gateway/server/index.d.cts +31 -0
  41. package/dist/gateway/server/index.d.ts +31 -0
  42. package/dist/gateway/server/index.js +1233 -0
  43. package/dist/gateway/server/index.js.map +1 -0
  44. package/dist/index.cjs +1075 -186
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +6 -4
  47. package/dist/index.d.ts +6 -4
  48. package/dist/index.js +1042 -163
  49. package/dist/index.js.map +1 -1
  50. package/dist/ingest-B3Yi8Tb1.d.cts +271 -0
  51. package/dist/ingest-DoKJTWU9.d.ts +271 -0
  52. package/dist/plan-pricing.cjs +108 -0
  53. package/dist/plan-pricing.cjs.map +1 -0
  54. package/dist/plan-pricing.d.cts +15 -0
  55. package/dist/plan-pricing.d.ts +15 -0
  56. package/dist/plan-pricing.js +98 -0
  57. package/dist/plan-pricing.js.map +1 -0
  58. package/dist/signer/server.cjs +1366 -0
  59. package/dist/signer/server.cjs.map +1 -0
  60. package/dist/signer/server.d.cts +73 -0
  61. package/dist/signer/server.d.ts +73 -0
  62. package/dist/signer/server.js +1331 -0
  63. package/dist/signer/server.js.map +1 -0
  64. package/dist/tokens.d.cts +1 -1
  65. package/dist/tokens.d.ts +1 -1
  66. package/dist/types-_R1AwEZp.d.cts +343 -0
  67. package/dist/types-_R1AwEZp.d.ts +343 -0
  68. package/dist/verify.cjs +1 -1
  69. package/dist/verify.cjs.map +1 -1
  70. package/dist/verify.d.cts +1 -1
  71. package/dist/verify.d.ts +1 -1
  72. package/dist/verify.js +1 -1
  73. package/dist/verify.js.map +1 -1
  74. package/gateway/proto/lp_rpc.proto +542 -0
  75. package/package.json +42 -1
  76. package/dist/types-rKzVXvMu.d.cts +0 -196
  77. package/dist/types-rKzVXvMu.d.ts +0 -196
@@ -0,0 +1,15 @@
1
+ /** Network cost pass-through: $1 retail per $1M of network USD-micros metered. */
2
+ declare const NETWORK_USD_PER_MICRO = 0.000001;
3
+ declare function defaultRetailRateUsd(): string;
4
+ declare function formatRetailRateUsd(value: number): string;
5
+ declare function parseRetailRateUsd(raw: string | null | undefined): string | null;
6
+ /** Markup percent (e.g. 50 = 50%) → retail USD per network USD-micro. */
7
+ declare function markupPercentToRetailRateUsd(markupPercent: number): string;
8
+ /** Retail USD per micro → markup percent string for UI (one decimal). */
9
+ declare function retailRateUsdToMarkupPercent(raw: string | null | undefined): string;
10
+ declare function retailRateUsdPerMillion(raw: string | null | undefined): string;
11
+ declare function parseMarkupPercentInput(raw: string): number | null;
12
+ /** Apply retail rate (USD per network micro) to network fee micros. */
13
+ declare function applyRetailRateToNetworkMicros(networkFeeUsdMicros: bigint, retailRateUsd: string): bigint;
14
+
15
+ export { NETWORK_USD_PER_MICRO, applyRetailRateToNetworkMicros, defaultRetailRateUsd, formatRetailRateUsd, markupPercentToRetailRateUsd, parseMarkupPercentInput, parseRetailRateUsd, retailRateUsdPerMillion, retailRateUsdToMarkupPercent };
@@ -0,0 +1,98 @@
1
+ // src/plan-pricing.ts
2
+ var NETWORK_USD_PER_MICRO = 1e-6;
3
+ var RETAIL_RATE_DECIMALS = 9;
4
+ function trimFixedDecimalZeros(fixed) {
5
+ const dotIndex = fixed.indexOf(".");
6
+ if (dotIndex === -1) {
7
+ return fixed;
8
+ }
9
+ let end = fixed.length;
10
+ while (end > dotIndex + 1 && fixed[end - 1] === "0") {
11
+ end -= 1;
12
+ }
13
+ if (end === dotIndex + 1) {
14
+ end = dotIndex;
15
+ }
16
+ const trimmed = fixed.slice(0, end);
17
+ return trimmed.length > 0 ? trimmed : "0";
18
+ }
19
+ function defaultRetailRateUsd() {
20
+ return formatRetailRateUsd(NETWORK_USD_PER_MICRO);
21
+ }
22
+ function formatRetailRateUsd(value) {
23
+ if (!Number.isFinite(value) || value < 0) {
24
+ return defaultRetailRateUsd();
25
+ }
26
+ return trimFixedDecimalZeros(value.toFixed(RETAIL_RATE_DECIMALS));
27
+ }
28
+ function parseRetailRateUsd(raw) {
29
+ if (raw === null || raw === void 0) {
30
+ return null;
31
+ }
32
+ const trimmed = String(raw).trim();
33
+ if (!trimmed) {
34
+ return null;
35
+ }
36
+ const n = Number(trimmed);
37
+ if (!Number.isFinite(n) || n < 0) {
38
+ return null;
39
+ }
40
+ return formatRetailRateUsd(n);
41
+ }
42
+ function markupPercentToRetailRateUsd(markupPercent) {
43
+ const pct = Number.isFinite(markupPercent) ? Math.max(0, markupPercent) : 0;
44
+ return formatRetailRateUsd(NETWORK_USD_PER_MICRO * (1 + pct / 100));
45
+ }
46
+ function retailRateUsdToMarkupPercent(raw) {
47
+ const rate = parseRetailRateUsd(raw);
48
+ if (!rate) {
49
+ return "";
50
+ }
51
+ const n = Number(rate);
52
+ if (!Number.isFinite(n) || n <= NETWORK_USD_PER_MICRO) {
53
+ return n === NETWORK_USD_PER_MICRO ? "0" : "";
54
+ }
55
+ const pct = (n / NETWORK_USD_PER_MICRO - 1) * 100;
56
+ if (!Number.isFinite(pct) || pct <= 0) {
57
+ return "";
58
+ }
59
+ return pct % 1 === 0 ? String(Math.round(pct)) : pct.toFixed(1);
60
+ }
61
+ function retailRateUsdPerMillion(raw) {
62
+ const rate = parseRetailRateUsd(raw);
63
+ if (!rate) {
64
+ return "";
65
+ }
66
+ const perM = Number(rate) * 1e6;
67
+ if (!Number.isFinite(perM)) {
68
+ return "";
69
+ }
70
+ return perM.toFixed(2);
71
+ }
72
+ function parseMarkupPercentInput(raw) {
73
+ const trimmed = raw.trim();
74
+ if (!trimmed) {
75
+ return null;
76
+ }
77
+ const n = Number(trimmed);
78
+ if (!Number.isFinite(n) || n < 0) {
79
+ return null;
80
+ }
81
+ return n;
82
+ }
83
+ function applyRetailRateToNetworkMicros(networkFeeUsdMicros, retailRateUsd) {
84
+ const networkPerMicro = NETWORK_USD_PER_MICRO;
85
+ const retail = Number(retailRateUsd);
86
+ if (!Number.isFinite(retail) || retail <= 0) {
87
+ return networkFeeUsdMicros;
88
+ }
89
+ const ratio = retail / networkPerMicro;
90
+ if (!Number.isFinite(ratio) || ratio <= 0) {
91
+ return networkFeeUsdMicros;
92
+ }
93
+ return networkFeeUsdMicros * BigInt(Math.round(ratio * 1e6)) / 1000000n;
94
+ }
95
+
96
+ export { NETWORK_USD_PER_MICRO, applyRetailRateToNetworkMicros, defaultRetailRateUsd, formatRetailRateUsd, markupPercentToRetailRateUsd, parseMarkupPercentInput, parseRetailRateUsd, retailRateUsdPerMillion, retailRateUsdToMarkupPercent };
97
+ //# sourceMappingURL=plan-pricing.js.map
98
+ //# sourceMappingURL=plan-pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plan-pricing.ts"],"names":[],"mappings":"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","file":"plan-pricing.js","sourcesContent":["/** Network cost pass-through: $1 retail per $1M of network USD-micros metered. */\nexport const NETWORK_USD_PER_MICRO = 0.000001;\n\nconst RETAIL_RATE_DECIMALS = 9;\n\n/** Strip trailing fractional zeros without regex (avoids ReDoS on user-facing inputs). */\nfunction trimFixedDecimalZeros(fixed: string): string {\n const dotIndex = fixed.indexOf(\".\");\n if (dotIndex === -1) {\n return fixed;\n }\n let end = fixed.length;\n while (end > dotIndex + 1 && fixed[end - 1] === \"0\") {\n end -= 1;\n }\n if (end === dotIndex + 1) {\n end = dotIndex;\n }\n const trimmed = fixed.slice(0, end);\n return trimmed.length > 0 ? trimmed : \"0\";\n}\n\nexport function defaultRetailRateUsd(): string {\n return formatRetailRateUsd(NETWORK_USD_PER_MICRO);\n}\n\nexport function formatRetailRateUsd(value: number): string {\n if (!Number.isFinite(value) || value < 0) {\n return defaultRetailRateUsd();\n }\n return trimFixedDecimalZeros(value.toFixed(RETAIL_RATE_DECIMALS));\n}\n\nexport function parseRetailRateUsd(raw: string | null | undefined): string | null {\n if (raw === null || raw === undefined) {\n return null;\n }\n const trimmed = String(raw).trim();\n if (!trimmed) {\n return null;\n }\n const n = Number(trimmed);\n if (!Number.isFinite(n) || n < 0) {\n return null;\n }\n return formatRetailRateUsd(n);\n}\n\n/** Markup percent (e.g. 50 = 50%) → retail USD per network USD-micro. */\nexport function markupPercentToRetailRateUsd(markupPercent: number): string {\n const pct = Number.isFinite(markupPercent) ? Math.max(0, markupPercent) : 0;\n return formatRetailRateUsd(NETWORK_USD_PER_MICRO * (1 + pct / 100));\n}\n\n/** Retail USD per micro → markup percent string for UI (one decimal). */\nexport function retailRateUsdToMarkupPercent(raw: string | null | undefined): string {\n const rate = parseRetailRateUsd(raw);\n if (!rate) {\n return \"\";\n }\n const n = Number(rate);\n if (!Number.isFinite(n) || n <= NETWORK_USD_PER_MICRO) {\n return n === NETWORK_USD_PER_MICRO ? \"0\" : \"\";\n }\n const pct = (n / NETWORK_USD_PER_MICRO - 1) * 100;\n if (!Number.isFinite(pct) || pct <= 0) {\n return \"\";\n }\n return pct % 1 === 0 ? String(Math.round(pct)) : pct.toFixed(1);\n}\n\nexport function retailRateUsdPerMillion(raw: string | null | undefined): string {\n const rate = parseRetailRateUsd(raw);\n if (!rate) {\n return \"\";\n }\n const perM = Number(rate) * 1_000_000;\n if (!Number.isFinite(perM)) {\n return \"\";\n }\n return perM.toFixed(2);\n}\n\nexport function parseMarkupPercentInput(raw: string): number | null {\n const trimmed = raw.trim();\n if (!trimmed) {\n return null;\n }\n const n = Number(trimmed);\n if (!Number.isFinite(n) || n < 0) {\n return null;\n }\n return n;\n}\n\n/** Apply retail rate (USD per network micro) to network fee micros. */\nexport function applyRetailRateToNetworkMicros(\n networkFeeUsdMicros: bigint,\n retailRateUsd: string,\n): bigint {\n const networkPerMicro = NETWORK_USD_PER_MICRO;\n const retail = Number(retailRateUsd);\n if (!Number.isFinite(retail) || retail <= 0) {\n return networkFeeUsdMicros;\n }\n const ratio = retail / networkPerMicro;\n if (!Number.isFinite(ratio) || ratio <= 0) {\n return networkFeeUsdMicros;\n }\n return (networkFeeUsdMicros * BigInt(Math.round(ratio * 1_000_000))) / 1_000_000n;\n}\n"]}