@volter/twin-upstash 0.1.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 (162) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +202 -0
  3. package/api/src/fetch.ts +54 -0
  4. package/api/src/generated/surface.gen.json +1 -0
  5. package/api/src/generated/ui.gen.json +1 -0
  6. package/api/src/index.ts +19 -0
  7. package/api/src/key-gate.ts +30 -0
  8. package/api/src/manifest.ts +103 -0
  9. package/api/src/screens/developer-api.tsx +106 -0
  10. package/api/src/screens/qstash.tsx +99 -0
  11. package/api/src/screens/session.tsx +125 -0
  12. package/api/src/screens/teams.tsx +114 -0
  13. package/api/src/semantics/backups.ts +90 -0
  14. package/api/src/semantics/index.ts +191 -0
  15. package/api/src/semantics/shared.ts +42 -0
  16. package/api/src/semantics/teams.ts +108 -0
  17. package/api/src/semantics/time.ts +40 -0
  18. package/dist/api/src/fetch.d.ts +15 -0
  19. package/dist/api/src/fetch.js +44 -0
  20. package/dist/api/src/fetch.ts +54 -0
  21. package/dist/api/src/generated/surface.gen.json +1 -0
  22. package/dist/api/src/generated/ui.gen.json +1 -0
  23. package/dist/api/src/index.ts +19 -0
  24. package/dist/api/src/key-gate.d.ts +3 -0
  25. package/dist/api/src/key-gate.js +30 -0
  26. package/dist/api/src/key-gate.ts +30 -0
  27. package/dist/api/src/manifest.d.ts +2 -0
  28. package/dist/api/src/manifest.js +81 -0
  29. package/dist/api/src/manifest.ts +103 -0
  30. package/dist/api/src/screens/developer-api.d.ts +3 -0
  31. package/dist/api/src/screens/developer-api.js +101 -0
  32. package/dist/api/src/screens/developer-api.tsx +106 -0
  33. package/dist/api/src/screens/qstash.d.ts +3 -0
  34. package/dist/api/src/screens/qstash.js +92 -0
  35. package/dist/api/src/screens/qstash.tsx +99 -0
  36. package/dist/api/src/screens/session.d.ts +9 -0
  37. package/dist/api/src/screens/session.js +118 -0
  38. package/dist/api/src/screens/session.tsx +125 -0
  39. package/dist/api/src/screens/teams.d.ts +3 -0
  40. package/dist/api/src/screens/teams.js +99 -0
  41. package/dist/api/src/screens/teams.tsx +114 -0
  42. package/dist/api/src/semantics/backups.d.ts +7 -0
  43. package/dist/api/src/semantics/backups.js +75 -0
  44. package/dist/api/src/semantics/backups.ts +90 -0
  45. package/dist/api/src/semantics/index.d.ts +10 -0
  46. package/dist/api/src/semantics/index.js +191 -0
  47. package/dist/api/src/semantics/index.ts +191 -0
  48. package/dist/api/src/semantics/shared.d.ts +21 -0
  49. package/dist/api/src/semantics/shared.js +34 -0
  50. package/dist/api/src/semantics/shared.ts +42 -0
  51. package/dist/api/src/semantics/teams.d.ts +13 -0
  52. package/dist/api/src/semantics/teams.js +100 -0
  53. package/dist/api/src/semantics/teams.ts +108 -0
  54. package/dist/api/src/semantics/time.d.ts +2 -0
  55. package/dist/api/src/semantics/time.js +34 -0
  56. package/dist/api/src/semantics/time.ts +40 -0
  57. package/dist/qstash/src/doors.d.ts +6 -0
  58. package/dist/qstash/src/doors.js +33 -0
  59. package/dist/qstash/src/doors.ts +51 -0
  60. package/dist/qstash/src/egress.d.ts +7 -0
  61. package/dist/qstash/src/egress.js +66 -0
  62. package/dist/qstash/src/egress.ts +58 -0
  63. package/dist/qstash/src/fetch.d.ts +7 -0
  64. package/dist/qstash/src/fetch.js +48 -0
  65. package/dist/qstash/src/fetch.ts +46 -0
  66. package/dist/qstash/src/generated/surface.gen.json +1 -0
  67. package/dist/qstash/src/generated/ui.gen.json +1 -0
  68. package/dist/qstash/src/index.ts +35 -0
  69. package/dist/qstash/src/manifest.d.ts +10 -0
  70. package/dist/qstash/src/manifest.js +105 -0
  71. package/dist/qstash/src/manifest.ts +134 -0
  72. package/dist/qstash/src/semantics/account.d.ts +29 -0
  73. package/dist/qstash/src/semantics/account.js +91 -0
  74. package/dist/qstash/src/semantics/account.ts +98 -0
  75. package/dist/qstash/src/semantics/delivery.d.ts +17 -0
  76. package/dist/qstash/src/semantics/delivery.js +274 -0
  77. package/dist/qstash/src/semantics/delivery.ts +264 -0
  78. package/dist/qstash/src/semantics/dlq.d.ts +4 -0
  79. package/dist/qstash/src/semantics/dlq.js +51 -0
  80. package/dist/qstash/src/semantics/dlq.ts +61 -0
  81. package/dist/qstash/src/semantics/index.d.ts +2 -0
  82. package/dist/qstash/src/semantics/index.js +10 -0
  83. package/dist/qstash/src/semantics/index.ts +13 -0
  84. package/dist/qstash/src/semantics/keys.d.ts +2 -0
  85. package/dist/qstash/src/semantics/keys.js +9 -0
  86. package/dist/qstash/src/semantics/keys.ts +14 -0
  87. package/dist/qstash/src/semantics/messages.d.ts +74 -0
  88. package/dist/qstash/src/semantics/messages.js +233 -0
  89. package/dist/qstash/src/semantics/messages.ts +249 -0
  90. package/dist/qstash/src/semantics/queues.d.ts +2 -0
  91. package/dist/qstash/src/semantics/queues.js +60 -0
  92. package/dist/qstash/src/semantics/queues.ts +66 -0
  93. package/dist/qstash/src/semantics/schedules.d.ts +19 -0
  94. package/dist/qstash/src/semantics/schedules.js +125 -0
  95. package/dist/qstash/src/semantics/schedules.ts +132 -0
  96. package/dist/qstash/src/semantics/shared.d.ts +45 -0
  97. package/dist/qstash/src/semantics/shared.js +115 -0
  98. package/dist/qstash/src/semantics/shared.ts +121 -0
  99. package/dist/qstash/src/semantics/urlgroups.d.ts +2 -0
  100. package/dist/qstash/src/semantics/urlgroups.js +58 -0
  101. package/dist/qstash/src/semantics/urlgroups.ts +69 -0
  102. package/dist/qstash/src/semantics/workflows.d.ts +44 -0
  103. package/dist/qstash/src/semantics/workflows.js +379 -0
  104. package/dist/qstash/src/semantics/workflows.ts +401 -0
  105. package/dist/qstash/src/signing.d.ts +4 -0
  106. package/dist/qstash/src/signing.js +16 -0
  107. package/dist/qstash/src/signing.ts +19 -0
  108. package/dist/src/cli.d.ts +2 -0
  109. package/dist/src/cli.js +35 -0
  110. package/dist/src/generated/surface.gen.json +1 -0
  111. package/dist/src/index.d.ts +18 -0
  112. package/dist/src/index.js +124 -0
  113. package/dist/src/manifest.d.ts +14 -0
  114. package/dist/src/manifest.js +8 -0
  115. package/dist/src/upstash-budget.d.ts +85 -0
  116. package/dist/src/upstash-budget.js +440 -0
  117. package/dist/src/upstash-capabilities.d.ts +4 -0
  118. package/dist/src/upstash-capabilities.js +1286 -0
  119. package/dist/src/upstash-conformance.d.ts +7 -0
  120. package/dist/src/upstash-conformance.js +119 -0
  121. package/dist/src/upstash-connector.d.ts +115 -0
  122. package/dist/src/upstash-connector.js +309 -0
  123. package/dist/src/upstash-lua.d.ts +140 -0
  124. package/dist/src/upstash-lua.js +1229 -0
  125. package/dist/src/upstash-server.d.ts +29 -0
  126. package/dist/src/upstash-server.js +81 -0
  127. package/dist/src/upstash-store.d.ts +114 -0
  128. package/dist/src/upstash-store.js +1663 -0
  129. package/dist/src/upstash-twin.d.ts +73 -0
  130. package/dist/src/upstash-twin.js +437 -0
  131. package/package.json +59 -0
  132. package/qstash/src/doors.ts +51 -0
  133. package/qstash/src/egress.ts +58 -0
  134. package/qstash/src/fetch.ts +46 -0
  135. package/qstash/src/generated/surface.gen.json +1 -0
  136. package/qstash/src/generated/ui.gen.json +1 -0
  137. package/qstash/src/index.ts +35 -0
  138. package/qstash/src/manifest.ts +134 -0
  139. package/qstash/src/semantics/account.ts +98 -0
  140. package/qstash/src/semantics/delivery.ts +264 -0
  141. package/qstash/src/semantics/dlq.ts +61 -0
  142. package/qstash/src/semantics/index.ts +13 -0
  143. package/qstash/src/semantics/keys.ts +14 -0
  144. package/qstash/src/semantics/messages.ts +249 -0
  145. package/qstash/src/semantics/queues.ts +66 -0
  146. package/qstash/src/semantics/schedules.ts +132 -0
  147. package/qstash/src/semantics/shared.ts +121 -0
  148. package/qstash/src/semantics/urlgroups.ts +69 -0
  149. package/qstash/src/semantics/workflows.ts +401 -0
  150. package/qstash/src/signing.ts +19 -0
  151. package/src/cli.ts +36 -0
  152. package/src/generated/surface.gen.json +1 -0
  153. package/src/index.ts +203 -0
  154. package/src/manifest.ts +26 -0
  155. package/src/upstash-budget.ts +486 -0
  156. package/src/upstash-capabilities.ts +1418 -0
  157. package/src/upstash-conformance.ts +131 -0
  158. package/src/upstash-connector.ts +340 -0
  159. package/src/upstash-lua.ts +1120 -0
  160. package/src/upstash-server.ts +103 -0
  161. package/src/upstash-store.ts +1437 -0
  162. package/src/upstash-twin.ts +465 -0
@@ -0,0 +1,140 @@
1
+ /** A Lua runtime/parse error. Surfaces to the caller as a Redis script error, never as a result. */
2
+ export declare class LuaError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ /** A Lua table. Array part + hash part, exactly like the real thing (1-based array indices). */
6
+ export declare class LuaTable {
7
+ readonly map: Map<string | number | boolean, LuaValue>;
8
+ get(k: LuaValue): LuaValue;
9
+ set(k: LuaValue, v: LuaValue): void;
10
+ /** A non-nil value at a non-nil key. */
11
+ private store;
12
+ /** `#t` — the border of the array part: the largest n where t[1..n] are all non-nil. */
13
+ get length(): number;
14
+ static fromArray(values: LuaValue[]): LuaTable;
15
+ toArray(): LuaValue[];
16
+ }
17
+ export type LuaFunction = (args: LuaValue[]) => LuaValue[];
18
+ /** `null` stands for Lua `nil` (JS `undefined` is never used as a value in this interpreter). */
19
+ export type LuaValue = null | boolean | number | string | LuaTable | LuaFunction;
20
+ type TokKind = 'name' | 'number' | 'string' | 'op' | 'keyword' | 'eof';
21
+ type Token = {
22
+ kind: TokKind;
23
+ value: string;
24
+ line: number;
25
+ };
26
+ export declare function tokenize(src: string): Token[];
27
+ type Expr = {
28
+ t: 'nil';
29
+ } | {
30
+ t: 'true';
31
+ } | {
32
+ t: 'false';
33
+ } | {
34
+ t: 'num';
35
+ v: number;
36
+ } | {
37
+ t: 'str';
38
+ v: string;
39
+ } | {
40
+ t: 'name';
41
+ v: string;
42
+ } | {
43
+ t: 'index';
44
+ obj: Expr;
45
+ key: Expr;
46
+ } | {
47
+ t: 'call';
48
+ fn: Expr;
49
+ args: Expr[];
50
+ line?: number;
51
+ } | {
52
+ t: 'bin';
53
+ op: string;
54
+ l: Expr;
55
+ r: Expr;
56
+ } | {
57
+ t: 'un';
58
+ op: string;
59
+ e: Expr;
60
+ } | {
61
+ t: 'table';
62
+ array: Expr[];
63
+ pairs: Array<{
64
+ k: Expr;
65
+ v: Expr;
66
+ }>;
67
+ } | {
68
+ t: 'func';
69
+ params: string[];
70
+ body: Stat[];
71
+ };
72
+ type Stat = {
73
+ t: 'local';
74
+ names: string[];
75
+ exprs: Expr[];
76
+ } | {
77
+ t: 'assign';
78
+ targets: Expr[];
79
+ exprs: Expr[];
80
+ } | {
81
+ t: 'callstat';
82
+ call: Expr;
83
+ } | {
84
+ t: 'if';
85
+ branches: Array<{
86
+ cond: Expr;
87
+ body: Stat[];
88
+ }>;
89
+ orelse: Stat[] | null;
90
+ } | {
91
+ t: 'while';
92
+ cond: Expr;
93
+ body: Stat[];
94
+ } | {
95
+ t: 'repeat';
96
+ body: Stat[];
97
+ cond: Expr;
98
+ } | {
99
+ t: 'fornum';
100
+ name: string;
101
+ from: Expr;
102
+ to: Expr;
103
+ step: Expr | null;
104
+ body: Stat[];
105
+ } | {
106
+ t: 'forin';
107
+ names: string[];
108
+ exprs: Expr[];
109
+ body: Stat[];
110
+ } | {
111
+ t: 'do';
112
+ body: Stat[];
113
+ } | {
114
+ t: 'return';
115
+ exprs: Expr[];
116
+ } | {
117
+ t: 'break';
118
+ };
119
+ /** Parse Lua source into a chunk. Exported so a test can prove a bad script fails at PARSE time. */
120
+ export declare function parseLua(src: string): Stat[];
121
+ export declare function luaTruthy(v: LuaValue): boolean;
122
+ export declare function luaTypeName(v: LuaValue): string;
123
+ /** Lua 5.1's `%.14g` number formatting — `3` prints as "3", not "3.0". */
124
+ export declare function numberToLuaString(n: number): string;
125
+ /** `tonumber`, exactly: a number passes through, a numeric string converts, anything else is nil. */
126
+ export declare function luaToNumber(v: LuaValue, base?: number): LuaValue;
127
+ /** What the host must supply: a synchronous `redis.call`, plus KEYS/ARGV. */
128
+ export type LuaHost = {
129
+ /** Run one Redis command, called from the script's line `line`. MUST throw to abort the script the way `redis.call` does. */
130
+ call: (args: string[], line: number) => LuaValue;
131
+ keys: string[];
132
+ argv: string[];
133
+ };
134
+ /** Lua `==`: same type required (no string/number coercion); tables compare by identity. */
135
+ export declare function luaEquals(l: LuaValue, r: LuaValue): boolean;
136
+ /** Parse + run a script. Returns the Lua value the chunk returned (or `nil`). */
137
+ export declare function runLua(script: string, host: LuaHost): LuaValue;
138
+ /** The SHA1 real Redis keys the script cache by — the same hex digest `SCRIPT LOAD` returns. */
139
+ export declare function luaScriptSha1(script: string): string;
140
+ export {};