@qlever-llc/trellis 0.10.9 → 0.10.11

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 (220) hide show
  1. package/esm/client.d.ts +2 -0
  2. package/esm/client.d.ts.map +1 -1
  3. package/esm/client.js +2 -0
  4. package/esm/client_connect.d.ts +3 -2
  5. package/esm/client_connect.d.ts.map +1 -1
  6. package/esm/client_connect.js +4 -1
  7. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  8. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  9. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  10. package/esm/generated-sdk/auth/contract.js +9590 -7
  11. package/esm/generated-sdk/auth/mod.d.ts +3 -3
  12. package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
  13. package/esm/generated-sdk/auth/mod.js +1 -1
  14. package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
  15. package/esm/generated-sdk/auth/owned_api.js +305 -62
  16. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  17. package/esm/generated-sdk/auth/schemas.js +6492 -139
  18. package/esm/generated-sdk/auth/types.d.ts +254 -254
  19. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  20. package/esm/generated-sdk/health/api.d.ts.map +1 -1
  21. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  22. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  23. package/esm/generated-sdk/health/contract.js +117 -7
  24. package/esm/generated-sdk/health/mod.d.ts +2 -2
  25. package/esm/generated-sdk/health/mod.d.ts.map +1 -1
  26. package/esm/generated-sdk/health/mod.js +1 -1
  27. package/esm/generated-sdk/health/owned_api.d.ts.map +1 -1
  28. package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
  29. package/esm/generated-sdk/health/schemas.js +79 -1
  30. package/esm/generated-sdk/health/types.d.ts +4 -4
  31. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  32. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  33. package/esm/generated-sdk/jobs/api.js +12 -4
  34. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  35. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  36. package/esm/generated-sdk/jobs/contract.js +1080 -7
  37. package/esm/generated-sdk/jobs/mod.d.ts +2 -2
  38. package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
  39. package/esm/generated-sdk/jobs/mod.js +1 -1
  40. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  41. package/esm/generated-sdk/jobs/owned_api.js +26 -6
  42. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  43. package/esm/generated-sdk/jobs/schemas.js +768 -18
  44. package/esm/generated-sdk/jobs/types.d.ts +14 -14
  45. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  46. package/esm/generated-sdk/state/api.d.ts.map +1 -1
  47. package/esm/generated-sdk/state/api.js +3 -1
  48. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  49. package/esm/generated-sdk/state/contract.d.ts.map +1 -1
  50. package/esm/generated-sdk/state/contract.js +638 -7
  51. package/esm/generated-sdk/state/mod.d.ts +2 -2
  52. package/esm/generated-sdk/state/mod.d.ts.map +1 -1
  53. package/esm/generated-sdk/state/mod.js +1 -1
  54. package/esm/generated-sdk/state/owned_api.d.ts.map +1 -1
  55. package/esm/generated-sdk/state/owned_api.js +36 -8
  56. package/esm/generated-sdk/state/schemas.d.ts.map +1 -1
  57. package/esm/generated-sdk/state/schemas.js +441 -14
  58. package/esm/generated-sdk/state/types.d.ts +15 -15
  59. package/esm/generated-sdk/state/types.d.ts.map +1 -1
  60. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  61. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  62. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  63. package/esm/generated-sdk/trellis-core/contract.js +744 -7
  64. package/esm/generated-sdk/trellis-core/mod.d.ts +2 -2
  65. package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  66. package/esm/generated-sdk/trellis-core/mod.js +1 -1
  67. package/esm/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
  68. package/esm/generated-sdk/trellis-core/owned_api.js +1 -1
  69. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  70. package/esm/generated-sdk/trellis-core/schemas.js +626 -8
  71. package/esm/generated-sdk/trellis-core/types.d.ts +14 -14
  72. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  73. package/esm/server/health.d.ts.map +1 -1
  74. package/esm/server/health.js +34 -3
  75. package/esm/server/service.d.ts +35 -13
  76. package/esm/server/service.d.ts.map +1 -1
  77. package/esm/server/service.js +33 -3
  78. package/esm/server.d.ts.map +1 -1
  79. package/esm/server.js +49 -8
  80. package/esm/service/deno.d.ts +1 -1
  81. package/esm/service/deno.d.ts.map +1 -1
  82. package/esm/service/mod.d.ts +1 -1
  83. package/esm/service/mod.d.ts.map +1 -1
  84. package/esm/service/node.d.ts +1 -1
  85. package/esm/service/node.d.ts.map +1 -1
  86. package/esm/trellis.d.ts +28 -4
  87. package/esm/trellis.d.ts.map +1 -1
  88. package/esm/trellis.js +117 -26
  89. package/package.json +2 -2
  90. package/script/client.d.ts +2 -0
  91. package/script/client.d.ts.map +1 -1
  92. package/script/client.js +2 -0
  93. package/script/client_connect.d.ts +3 -2
  94. package/script/client_connect.d.ts.map +1 -1
  95. package/script/client_connect.js +4 -1
  96. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  97. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  98. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  99. package/script/generated-sdk/auth/contract.js +9590 -7
  100. package/script/generated-sdk/auth/mod.d.ts +3 -3
  101. package/script/generated-sdk/auth/mod.d.ts.map +1 -1
  102. package/script/generated-sdk/auth/mod.js +2 -2
  103. package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
  104. package/script/generated-sdk/auth/owned_api.js +304 -61
  105. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  106. package/script/generated-sdk/auth/schemas.js +6492 -139
  107. package/script/generated-sdk/auth/types.d.ts +254 -254
  108. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  109. package/script/generated-sdk/health/api.d.ts.map +1 -1
  110. package/script/generated-sdk/health/client.d.ts.map +1 -1
  111. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  112. package/script/generated-sdk/health/contract.js +117 -7
  113. package/script/generated-sdk/health/mod.d.ts +2 -2
  114. package/script/generated-sdk/health/mod.d.ts.map +1 -1
  115. package/script/generated-sdk/health/mod.js +2 -2
  116. package/script/generated-sdk/health/owned_api.d.ts.map +1 -1
  117. package/script/generated-sdk/health/schemas.d.ts.map +1 -1
  118. package/script/generated-sdk/health/schemas.js +79 -1
  119. package/script/generated-sdk/health/types.d.ts +4 -4
  120. package/script/generated-sdk/health/types.d.ts.map +1 -1
  121. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  122. package/script/generated-sdk/jobs/api.js +12 -4
  123. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  124. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  125. package/script/generated-sdk/jobs/contract.js +1080 -7
  126. package/script/generated-sdk/jobs/mod.d.ts +2 -2
  127. package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
  128. package/script/generated-sdk/jobs/mod.js +2 -2
  129. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  130. package/script/generated-sdk/jobs/owned_api.js +25 -5
  131. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  132. package/script/generated-sdk/jobs/schemas.js +768 -18
  133. package/script/generated-sdk/jobs/types.d.ts +14 -14
  134. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  135. package/script/generated-sdk/state/api.d.ts.map +1 -1
  136. package/script/generated-sdk/state/api.js +3 -1
  137. package/script/generated-sdk/state/client.d.ts.map +1 -1
  138. package/script/generated-sdk/state/contract.d.ts.map +1 -1
  139. package/script/generated-sdk/state/contract.js +638 -7
  140. package/script/generated-sdk/state/mod.d.ts +2 -2
  141. package/script/generated-sdk/state/mod.d.ts.map +1 -1
  142. package/script/generated-sdk/state/mod.js +2 -2
  143. package/script/generated-sdk/state/owned_api.d.ts.map +1 -1
  144. package/script/generated-sdk/state/owned_api.js +35 -7
  145. package/script/generated-sdk/state/schemas.d.ts.map +1 -1
  146. package/script/generated-sdk/state/schemas.js +441 -14
  147. package/script/generated-sdk/state/types.d.ts +15 -15
  148. package/script/generated-sdk/state/types.d.ts.map +1 -1
  149. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  150. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  151. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  152. package/script/generated-sdk/trellis-core/contract.js +744 -7
  153. package/script/generated-sdk/trellis-core/mod.d.ts +2 -2
  154. package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  155. package/script/generated-sdk/trellis-core/mod.js +2 -2
  156. package/script/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
  157. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  158. package/script/generated-sdk/trellis-core/schemas.js +626 -8
  159. package/script/generated-sdk/trellis-core/types.d.ts +14 -14
  160. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  161. package/script/server/health.d.ts.map +1 -1
  162. package/script/server/health.js +34 -3
  163. package/script/server/service.d.ts +35 -13
  164. package/script/server/service.d.ts.map +1 -1
  165. package/script/server/service.js +32 -2
  166. package/script/server.d.ts.map +1 -1
  167. package/script/server.js +48 -7
  168. package/script/service/deno.d.ts +1 -1
  169. package/script/service/deno.d.ts.map +1 -1
  170. package/script/service/mod.d.ts +1 -1
  171. package/script/service/mod.d.ts.map +1 -1
  172. package/script/service/node.d.ts +1 -1
  173. package/script/service/node.d.ts.map +1 -1
  174. package/script/trellis.d.ts +28 -4
  175. package/script/trellis.d.ts.map +1 -1
  176. package/script/trellis.js +118 -26
  177. package/src/client.ts +4 -0
  178. package/src/client_connect.ts +11 -9
  179. package/src/sdk/_generated/auth/api.ts +10 -21
  180. package/src/sdk/_generated/auth/client.ts +1178 -160
  181. package/src/sdk/_generated/auth/contract.ts +9637 -13
  182. package/src/sdk/_generated/auth/mod.ts +22 -3
  183. package/src/sdk/_generated/auth/owned_api.ts +897 -264
  184. package/src/sdk/_generated/auth/schemas.ts +6630 -278
  185. package/src/sdk/_generated/auth/types.ts +2950 -359
  186. package/src/sdk/_generated/core/api.ts +10 -21
  187. package/src/sdk/_generated/core/client.ts +105 -12
  188. package/src/sdk/_generated/core/contract.ts +774 -13
  189. package/src/sdk/_generated/core/mod.ts +17 -2
  190. package/src/sdk/_generated/core/owned_api.ts +40 -24
  191. package/src/sdk/_generated/core/schemas.ts +626 -9
  192. package/src/sdk/_generated/core/types.ts +233 -18
  193. package/src/sdk/_generated/health/api.ts +10 -21
  194. package/src/sdk/_generated/health/client.ts +104 -8
  195. package/src/sdk/_generated/health/contract.ts +144 -13
  196. package/src/sdk/_generated/health/mod.ts +17 -2
  197. package/src/sdk/_generated/health/owned_api.ts +4 -9
  198. package/src/sdk/_generated/health/schemas.ts +79 -2
  199. package/src/sdk/_generated/health/types.ts +31 -4
  200. package/src/sdk/_generated/jobs/api.ts +20 -18
  201. package/src/sdk/_generated/jobs/client.ts +199 -28
  202. package/src/sdk/_generated/jobs/contract.ts +1119 -13
  203. package/src/sdk/_generated/jobs/mod.ts +17 -2
  204. package/src/sdk/_generated/jobs/owned_api.ts +64 -27
  205. package/src/sdk/_generated/jobs/schemas.ts +776 -20
  206. package/src/sdk/_generated/jobs/types.ts +407 -34
  207. package/src/sdk/_generated/state/api.ts +11 -18
  208. package/src/sdk/_generated/state/client.ts +169 -22
  209. package/src/sdk/_generated/state/contract.ts +670 -13
  210. package/src/sdk/_generated/state/mod.ts +17 -2
  211. package/src/sdk/_generated/state/owned_api.ts +65 -25
  212. package/src/sdk/_generated/state/schemas.ts +441 -15
  213. package/src/sdk/_generated/state/types.ts +229 -26
  214. package/src/server/health.ts +41 -3
  215. package/src/server/service.ts +140 -18
  216. package/src/server.ts +62 -7
  217. package/src/service/deno.ts +4 -0
  218. package/src/service/mod.ts +4 -0
  219. package/src/service/node.ts +4 -0
  220. package/src/trellis.ts +167 -55
@@ -2,7 +2,630 @@ import { API } from "./api.js";
2
2
  const CONTRACT_MODULE_METADATA = Symbol.for("@qlever-llc/trellis/contracts/contract-module");
3
3
  export const CONTRACT_ID = "trellis.state@v1";
4
4
  export const CONTRACT_DIGEST = "XfWDYLTBlYFjDqMPBEXrTBccZbFvHp0MnqscehdRKT4";
5
- export const CONTRACT = { "description": "Trellis-managed app state for authenticated app and device participants.", "displayName": "Trellis State", "docs": { "markdown": "Provides authenticated read, write, list, delete, and admin inspection APIs for Trellis-managed participant state.", "summary": "Participant state storage APIs." }, "format": "trellis.contract.v1", "id": "trellis.state@v1", "kind": "service", "rpc": { "State.Admin.Delete": { "capabilities": { "call": ["admin"] }, "docs": { "markdown": "Deletes one state value across participants for authorized administrators.", "summary": "Admin delete a state value." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StateAdminDeleteRequest" }, "output": { "schema": "StateAdminDeleteResponse" }, "subject": "rpc.v1.State.Admin.Delete", "version": "v1" }, "State.Admin.Get": { "capabilities": { "call": ["admin"] }, "docs": { "markdown": "Returns one state value across participants for authorized administrators.", "summary": "Admin read a state value." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StateAdminGetRequest" }, "output": { "schema": "StateAdminGetResponse" }, "subject": "rpc.v1.State.Admin.Get", "version": "v1" }, "State.Admin.List": { "capabilities": { "call": ["admin"] }, "docs": { "markdown": "Lists state values across participants for authorized administrators.", "summary": "Admin list state values." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StateAdminListRequest" }, "output": { "schema": "StateAdminListResponse" }, "subject": "rpc.v1.State.Admin.List", "version": "v1" }, "State.Delete": { "docs": { "markdown": "Deletes one state value from the caller's authorized scope.", "summary": "Delete a state value." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StateDeleteRequest" }, "output": { "schema": "StateDeleteResponse" }, "subject": "rpc.v1.State.Delete", "version": "v1" }, "State.Get": { "docs": { "markdown": "Returns one state value in the caller's authorized scope.", "summary": "Read a state value." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StateGetRequest" }, "output": { "schema": "StateGetResponse" }, "subject": "rpc.v1.State.Get", "version": "v1" }, "State.List": { "docs": { "markdown": "Lists state values visible to the caller for the requested scope and prefix.", "summary": "List state values." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StateListRequest" }, "output": { "schema": "StateListResponse" }, "subject": "rpc.v1.State.List", "version": "v1" }, "State.Put": { "docs": { "markdown": "Creates or replaces one state value in an authorized scope.", "summary": "Write a state value." }, "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, { "type": "ValidationError" }], "input": { "schema": "StatePutRequest" }, "output": { "schema": "StatePutResponse" }, "subject": "rpc.v1.State.Put", "version": "v1" } }, "schemas": { "JsonValue": {}, "StateAdminDeleteRequest": { "anyOf": [{ "properties": { "contractDigest": { "minLength": 1, "type": "string" }, "contractId": { "minLength": 1, "type": "string" }, "expectedRevision": { "minLength": 1, "type": "string" }, "key": { "minLength": 1, "type": "string" }, "scope": { "const": "userApp", "type": "string" }, "store": { "minLength": 1, "type": "string" }, "user": { "properties": { "id": { "minLength": 1, "type": "string" }, "origin": { "minLength": 1, "type": "string" }, "userId": { "minLength": 1, "type": "string" } }, "required": ["origin", "id"], "type": "object" } }, "required": ["scope", "contractId", "contractDigest", "store", "user"], "type": "object" }, { "properties": { "contractDigest": { "minLength": 1, "type": "string" }, "contractId": { "minLength": 1, "type": "string" }, "deviceId": { "minLength": 1, "type": "string" }, "expectedRevision": { "minLength": 1, "type": "string" }, "key": { "minLength": 1, "type": "string" }, "scope": { "const": "deviceApp", "type": "string" }, "store": { "minLength": 1, "type": "string" } }, "required": ["scope", "contractId", "contractDigest", "store", "deviceId"], "type": "object" }] }, "StateAdminDeleteResponse": { "properties": { "deleted": { "type": "boolean" } }, "required": ["deleted"], "type": "object" }, "StateAdminGetRequest": { "anyOf": [{ "properties": { "contractDigest": { "minLength": 1, "type": "string" }, "contractId": { "minLength": 1, "type": "string" }, "key": { "minLength": 1, "type": "string" }, "scope": { "const": "userApp", "type": "string" }, "store": { "minLength": 1, "type": "string" }, "user": { "properties": { "id": { "minLength": 1, "type": "string" }, "origin": { "minLength": 1, "type": "string" }, "userId": { "minLength": 1, "type": "string" } }, "required": ["origin", "id"], "type": "object" } }, "required": ["scope", "contractId", "contractDigest", "store", "user"], "type": "object" }, { "properties": { "contractDigest": { "minLength": 1, "type": "string" }, "contractId": { "minLength": 1, "type": "string" }, "deviceId": { "minLength": 1, "type": "string" }, "key": { "minLength": 1, "type": "string" }, "scope": { "const": "deviceApp", "type": "string" }, "store": { "minLength": 1, "type": "string" } }, "required": ["scope", "contractId", "contractDigest", "store", "deviceId"], "type": "object" }] }, "StateAdminGetResponse": { "anyOf": [{ "properties": { "found": { "const": false, "type": "boolean" } }, "required": ["found"], "type": "object" }, { "properties": { "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "found": { "const": true, "type": "boolean" } }, "required": ["found", "entry"], "type": "object" }, { "properties": { "currentStateVersion": { "minLength": 1, "type": "string" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "migrationRequired": { "const": true, "type": "boolean" }, "stateVersion": { "minLength": 1, "type": "string" }, "writerContractDigest": { "minLength": 1, "type": "string" } }, "required": ["migrationRequired", "entry", "stateVersion", "currentStateVersion", "writerContractDigest"], "type": "object" }] }, "StateAdminListRequest": { "anyOf": [{ "properties": { "contractDigest": { "minLength": 1, "type": "string" }, "contractId": { "minLength": 1, "type": "string" }, "limit": { "minimum": 0, "type": "integer" }, "offset": { "minimum": 0, "type": "integer" }, "prefix": { "minLength": 1, "type": "string" }, "scope": { "const": "userApp", "type": "string" }, "store": { "minLength": 1, "type": "string" }, "user": { "properties": { "id": { "minLength": 1, "type": "string" }, "origin": { "minLength": 1, "type": "string" }, "userId": { "minLength": 1, "type": "string" } }, "required": ["origin", "id"], "type": "object" } }, "required": ["limit", "scope", "contractId", "contractDigest", "store", "user"], "type": "object" }, { "properties": { "contractDigest": { "minLength": 1, "type": "string" }, "contractId": { "minLength": 1, "type": "string" }, "deviceId": { "minLength": 1, "type": "string" }, "limit": { "minimum": 0, "type": "integer" }, "offset": { "minimum": 0, "type": "integer" }, "prefix": { "minLength": 1, "type": "string" }, "scope": { "const": "deviceApp", "type": "string" }, "store": { "minLength": 1, "type": "string" } }, "required": ["limit", "scope", "contractId", "contractDigest", "store", "deviceId"], "type": "object" }] }, "StateAdminListResponse": { "properties": { "count": { "minimum": 0, "type": "integer" }, "entries": { "default": [], "items": { "anyOf": [{ "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, { "properties": { "currentStateVersion": { "minLength": 1, "type": "string" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "migrationRequired": { "const": true, "type": "boolean" }, "stateVersion": { "minLength": 1, "type": "string" }, "writerContractDigest": { "minLength": 1, "type": "string" } }, "required": ["migrationRequired", "entry", "stateVersion", "currentStateVersion", "writerContractDigest"], "type": "object" }] }, "type": "array" }, "limit": { "minimum": 0, "type": "integer" }, "nextOffset": { "minimum": 0, "type": "integer" }, "offset": { "minimum": 0, "type": "integer" } }, "required": ["entries", "count", "offset", "limit"], "type": "object" }, "StateDeleteRequest": { "properties": { "expectedRevision": { "minLength": 1, "type": "string" }, "key": { "minLength": 1, "type": "string" }, "store": { "minLength": 1, "type": "string" } }, "required": ["store"], "type": "object" }, "StateDeleteResponse": { "properties": { "deleted": { "type": "boolean" } }, "required": ["deleted"], "type": "object" }, "StateEntry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "StateGetRequest": { "properties": { "key": { "minLength": 1, "type": "string" }, "store": { "minLength": 1, "type": "string" } }, "required": ["store"], "type": "object" }, "StateGetResponse": { "anyOf": [{ "properties": { "found": { "const": false, "type": "boolean" } }, "required": ["found"], "type": "object" }, { "properties": { "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "found": { "const": true, "type": "boolean" } }, "required": ["found", "entry"], "type": "object" }, { "properties": { "currentStateVersion": { "minLength": 1, "type": "string" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "migrationRequired": { "const": true, "type": "boolean" }, "stateVersion": { "minLength": 1, "type": "string" }, "writerContractDigest": { "minLength": 1, "type": "string" } }, "required": ["migrationRequired", "entry", "stateVersion", "currentStateVersion", "writerContractDigest"], "type": "object" }] }, "StateListRequest": { "properties": { "limit": { "minimum": 0, "type": "integer" }, "offset": { "minimum": 0, "type": "integer" }, "prefix": { "minLength": 1, "type": "string" }, "store": { "minLength": 1, "type": "string" } }, "required": ["limit", "store"], "type": "object" }, "StateListResponse": { "properties": { "count": { "minimum": 0, "type": "integer" }, "entries": { "default": [], "items": { "anyOf": [{ "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, { "properties": { "currentStateVersion": { "minLength": 1, "type": "string" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "migrationRequired": { "const": true, "type": "boolean" }, "stateVersion": { "minLength": 1, "type": "string" }, "writerContractDigest": { "minLength": 1, "type": "string" } }, "required": ["migrationRequired", "entry", "stateVersion", "currentStateVersion", "writerContractDigest"], "type": "object" }] }, "type": "array" }, "limit": { "minimum": 0, "type": "integer" }, "nextOffset": { "minimum": 0, "type": "integer" }, "offset": { "minimum": 0, "type": "integer" } }, "required": ["entries", "count", "offset", "limit"], "type": "object" }, "StateMigrationRequired": { "properties": { "currentStateVersion": { "minLength": 1, "type": "string" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "migrationRequired": { "const": true, "type": "boolean" }, "stateVersion": { "minLength": 1, "type": "string" }, "writerContractDigest": { "minLength": 1, "type": "string" } }, "required": ["migrationRequired", "entry", "stateVersion", "currentStateVersion", "writerContractDigest"], "type": "object" }, "StatePutRequest": { "properties": { "expectedRevision": { "anyOf": [{ "minLength": 1, "type": "string" }, { "type": "null" }] }, "key": { "minLength": 1, "type": "string" }, "store": { "minLength": 1, "type": "string" }, "ttlMs": { "minimum": 1, "type": "integer" }, "value": {} }, "required": ["store", "value"], "type": "object" }, "StatePutResponse": { "anyOf": [{ "properties": { "applied": { "const": true, "type": "boolean" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" } }, "required": ["applied", "entry"], "type": "object" }, { "properties": { "applied": { "const": false, "type": "boolean" }, "entry": { "anyOf": [{ "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, { "properties": { "currentStateVersion": { "minLength": 1, "type": "string" }, "entry": { "properties": { "expiresAt": { "format": "date-time", "type": "string" }, "key": { "minLength": 1, "type": "string" }, "revision": { "minLength": 1, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": {} }, "required": ["value", "revision", "updatedAt"], "type": "object" }, "migrationRequired": { "const": true, "type": "boolean" }, "stateVersion": { "minLength": 1, "type": "string" }, "writerContractDigest": { "minLength": 1, "type": "string" } }, "required": ["migrationRequired", "entry", "stateVersion", "currentStateVersion", "writerContractDigest"], "type": "object" }] }, "found": { "type": "boolean" } }, "required": ["applied", "found"], "type": "object" }] }, "StateScope": { "anyOf": [{ "const": "userApp", "type": "string" }, { "const": "deviceApp", "type": "string" }] }, "StateUserTarget": { "properties": { "id": { "minLength": 1, "type": "string" }, "origin": { "minLength": 1, "type": "string" }, "userId": { "minLength": 1, "type": "string" } }, "required": ["origin", "id"], "type": "object" } }, "uses": { "required": { "health": { "contract": "trellis.health@v1", "events": { "publish": ["Health.Heartbeat"] } } } } };
5
+ export const CONTRACT = {
6
+ "description": "Trellis-managed app state for authenticated app and device participants.",
7
+ "displayName": "Trellis State",
8
+ "docs": {
9
+ "markdown": "Provides authenticated read, write, list, delete, and admin inspection APIs for Trellis-managed participant state.",
10
+ "summary": "Participant state storage APIs.",
11
+ },
12
+ "format": "trellis.contract.v1",
13
+ "id": "trellis.state@v1",
14
+ "kind": "service",
15
+ "rpc": {
16
+ "State.Admin.Delete": {
17
+ "capabilities": { "call": ["admin"] },
18
+ "docs": {
19
+ "markdown": "Deletes one state value across participants for authorized administrators.",
20
+ "summary": "Admin delete a state value.",
21
+ },
22
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
23
+ "type": "ValidationError",
24
+ }],
25
+ "input": { "schema": "StateAdminDeleteRequest" },
26
+ "output": { "schema": "StateAdminDeleteResponse" },
27
+ "subject": "rpc.v1.State.Admin.Delete",
28
+ "version": "v1",
29
+ },
30
+ "State.Admin.Get": {
31
+ "capabilities": { "call": ["admin"] },
32
+ "docs": {
33
+ "markdown": "Returns one state value across participants for authorized administrators.",
34
+ "summary": "Admin read a state value.",
35
+ },
36
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
37
+ "type": "ValidationError",
38
+ }],
39
+ "input": { "schema": "StateAdminGetRequest" },
40
+ "output": { "schema": "StateAdminGetResponse" },
41
+ "subject": "rpc.v1.State.Admin.Get",
42
+ "version": "v1",
43
+ },
44
+ "State.Admin.List": {
45
+ "capabilities": { "call": ["admin"] },
46
+ "docs": {
47
+ "markdown": "Lists state values across participants for authorized administrators.",
48
+ "summary": "Admin list state values.",
49
+ },
50
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
51
+ "type": "ValidationError",
52
+ }],
53
+ "input": { "schema": "StateAdminListRequest" },
54
+ "output": { "schema": "StateAdminListResponse" },
55
+ "subject": "rpc.v1.State.Admin.List",
56
+ "version": "v1",
57
+ },
58
+ "State.Delete": {
59
+ "docs": {
60
+ "markdown": "Deletes one state value from the caller's authorized scope.",
61
+ "summary": "Delete a state value.",
62
+ },
63
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
64
+ "type": "ValidationError",
65
+ }],
66
+ "input": { "schema": "StateDeleteRequest" },
67
+ "output": { "schema": "StateDeleteResponse" },
68
+ "subject": "rpc.v1.State.Delete",
69
+ "version": "v1",
70
+ },
71
+ "State.Get": {
72
+ "docs": {
73
+ "markdown": "Returns one state value in the caller's authorized scope.",
74
+ "summary": "Read a state value.",
75
+ },
76
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
77
+ "type": "ValidationError",
78
+ }],
79
+ "input": { "schema": "StateGetRequest" },
80
+ "output": { "schema": "StateGetResponse" },
81
+ "subject": "rpc.v1.State.Get",
82
+ "version": "v1",
83
+ },
84
+ "State.List": {
85
+ "docs": {
86
+ "markdown": "Lists state values visible to the caller for the requested scope and prefix.",
87
+ "summary": "List state values.",
88
+ },
89
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
90
+ "type": "ValidationError",
91
+ }],
92
+ "input": { "schema": "StateListRequest" },
93
+ "output": { "schema": "StateListResponse" },
94
+ "subject": "rpc.v1.State.List",
95
+ "version": "v1",
96
+ },
97
+ "State.Put": {
98
+ "docs": {
99
+ "markdown": "Creates or replaces one state value in an authorized scope.",
100
+ "summary": "Write a state value.",
101
+ },
102
+ "errors": [{ "type": "AuthError" }, { "type": "UnexpectedError" }, {
103
+ "type": "ValidationError",
104
+ }],
105
+ "input": { "schema": "StatePutRequest" },
106
+ "output": { "schema": "StatePutResponse" },
107
+ "subject": "rpc.v1.State.Put",
108
+ "version": "v1",
109
+ },
110
+ },
111
+ "schemas": {
112
+ "JsonValue": {},
113
+ "StateAdminDeleteRequest": {
114
+ "anyOf": [{
115
+ "properties": {
116
+ "contractDigest": { "minLength": 1, "type": "string" },
117
+ "contractId": { "minLength": 1, "type": "string" },
118
+ "expectedRevision": { "minLength": 1, "type": "string" },
119
+ "key": { "minLength": 1, "type": "string" },
120
+ "scope": { "const": "userApp", "type": "string" },
121
+ "store": { "minLength": 1, "type": "string" },
122
+ "user": {
123
+ "properties": {
124
+ "id": { "minLength": 1, "type": "string" },
125
+ "origin": { "minLength": 1, "type": "string" },
126
+ "userId": { "minLength": 1, "type": "string" },
127
+ },
128
+ "required": ["origin", "id"],
129
+ "type": "object",
130
+ },
131
+ },
132
+ "required": ["scope", "contractId", "contractDigest", "store", "user"],
133
+ "type": "object",
134
+ }, {
135
+ "properties": {
136
+ "contractDigest": { "minLength": 1, "type": "string" },
137
+ "contractId": { "minLength": 1, "type": "string" },
138
+ "deviceId": { "minLength": 1, "type": "string" },
139
+ "expectedRevision": { "minLength": 1, "type": "string" },
140
+ "key": { "minLength": 1, "type": "string" },
141
+ "scope": { "const": "deviceApp", "type": "string" },
142
+ "store": { "minLength": 1, "type": "string" },
143
+ },
144
+ "required": [
145
+ "scope",
146
+ "contractId",
147
+ "contractDigest",
148
+ "store",
149
+ "deviceId",
150
+ ],
151
+ "type": "object",
152
+ }],
153
+ },
154
+ "StateAdminDeleteResponse": {
155
+ "properties": { "deleted": { "type": "boolean" } },
156
+ "required": ["deleted"],
157
+ "type": "object",
158
+ },
159
+ "StateAdminGetRequest": {
160
+ "anyOf": [{
161
+ "properties": {
162
+ "contractDigest": { "minLength": 1, "type": "string" },
163
+ "contractId": { "minLength": 1, "type": "string" },
164
+ "key": { "minLength": 1, "type": "string" },
165
+ "scope": { "const": "userApp", "type": "string" },
166
+ "store": { "minLength": 1, "type": "string" },
167
+ "user": {
168
+ "properties": {
169
+ "id": { "minLength": 1, "type": "string" },
170
+ "origin": { "minLength": 1, "type": "string" },
171
+ "userId": { "minLength": 1, "type": "string" },
172
+ },
173
+ "required": ["origin", "id"],
174
+ "type": "object",
175
+ },
176
+ },
177
+ "required": ["scope", "contractId", "contractDigest", "store", "user"],
178
+ "type": "object",
179
+ }, {
180
+ "properties": {
181
+ "contractDigest": { "minLength": 1, "type": "string" },
182
+ "contractId": { "minLength": 1, "type": "string" },
183
+ "deviceId": { "minLength": 1, "type": "string" },
184
+ "key": { "minLength": 1, "type": "string" },
185
+ "scope": { "const": "deviceApp", "type": "string" },
186
+ "store": { "minLength": 1, "type": "string" },
187
+ },
188
+ "required": [
189
+ "scope",
190
+ "contractId",
191
+ "contractDigest",
192
+ "store",
193
+ "deviceId",
194
+ ],
195
+ "type": "object",
196
+ }],
197
+ },
198
+ "StateAdminGetResponse": {
199
+ "anyOf": [{
200
+ "properties": { "found": { "const": false, "type": "boolean" } },
201
+ "required": ["found"],
202
+ "type": "object",
203
+ }, {
204
+ "properties": {
205
+ "entry": {
206
+ "properties": {
207
+ "expiresAt": { "format": "date-time", "type": "string" },
208
+ "key": { "minLength": 1, "type": "string" },
209
+ "revision": { "minLength": 1, "type": "string" },
210
+ "updatedAt": { "format": "date-time", "type": "string" },
211
+ "value": {},
212
+ },
213
+ "required": ["value", "revision", "updatedAt"],
214
+ "type": "object",
215
+ },
216
+ "found": { "const": true, "type": "boolean" },
217
+ },
218
+ "required": ["found", "entry"],
219
+ "type": "object",
220
+ }, {
221
+ "properties": {
222
+ "currentStateVersion": { "minLength": 1, "type": "string" },
223
+ "entry": {
224
+ "properties": {
225
+ "expiresAt": { "format": "date-time", "type": "string" },
226
+ "key": { "minLength": 1, "type": "string" },
227
+ "revision": { "minLength": 1, "type": "string" },
228
+ "updatedAt": { "format": "date-time", "type": "string" },
229
+ "value": {},
230
+ },
231
+ "required": ["value", "revision", "updatedAt"],
232
+ "type": "object",
233
+ },
234
+ "migrationRequired": { "const": true, "type": "boolean" },
235
+ "stateVersion": { "minLength": 1, "type": "string" },
236
+ "writerContractDigest": { "minLength": 1, "type": "string" },
237
+ },
238
+ "required": [
239
+ "migrationRequired",
240
+ "entry",
241
+ "stateVersion",
242
+ "currentStateVersion",
243
+ "writerContractDigest",
244
+ ],
245
+ "type": "object",
246
+ }],
247
+ },
248
+ "StateAdminListRequest": {
249
+ "anyOf": [{
250
+ "properties": {
251
+ "contractDigest": { "minLength": 1, "type": "string" },
252
+ "contractId": { "minLength": 1, "type": "string" },
253
+ "limit": { "minimum": 0, "type": "integer" },
254
+ "offset": { "minimum": 0, "type": "integer" },
255
+ "prefix": { "minLength": 1, "type": "string" },
256
+ "scope": { "const": "userApp", "type": "string" },
257
+ "store": { "minLength": 1, "type": "string" },
258
+ "user": {
259
+ "properties": {
260
+ "id": { "minLength": 1, "type": "string" },
261
+ "origin": { "minLength": 1, "type": "string" },
262
+ "userId": { "minLength": 1, "type": "string" },
263
+ },
264
+ "required": ["origin", "id"],
265
+ "type": "object",
266
+ },
267
+ },
268
+ "required": [
269
+ "limit",
270
+ "scope",
271
+ "contractId",
272
+ "contractDigest",
273
+ "store",
274
+ "user",
275
+ ],
276
+ "type": "object",
277
+ }, {
278
+ "properties": {
279
+ "contractDigest": { "minLength": 1, "type": "string" },
280
+ "contractId": { "minLength": 1, "type": "string" },
281
+ "deviceId": { "minLength": 1, "type": "string" },
282
+ "limit": { "minimum": 0, "type": "integer" },
283
+ "offset": { "minimum": 0, "type": "integer" },
284
+ "prefix": { "minLength": 1, "type": "string" },
285
+ "scope": { "const": "deviceApp", "type": "string" },
286
+ "store": { "minLength": 1, "type": "string" },
287
+ },
288
+ "required": [
289
+ "limit",
290
+ "scope",
291
+ "contractId",
292
+ "contractDigest",
293
+ "store",
294
+ "deviceId",
295
+ ],
296
+ "type": "object",
297
+ }],
298
+ },
299
+ "StateAdminListResponse": {
300
+ "properties": {
301
+ "count": { "minimum": 0, "type": "integer" },
302
+ "entries": {
303
+ "default": [],
304
+ "items": {
305
+ "anyOf": [{
306
+ "properties": {
307
+ "expiresAt": { "format": "date-time", "type": "string" },
308
+ "key": { "minLength": 1, "type": "string" },
309
+ "revision": { "minLength": 1, "type": "string" },
310
+ "updatedAt": { "format": "date-time", "type": "string" },
311
+ "value": {},
312
+ },
313
+ "required": ["value", "revision", "updatedAt"],
314
+ "type": "object",
315
+ }, {
316
+ "properties": {
317
+ "currentStateVersion": { "minLength": 1, "type": "string" },
318
+ "entry": {
319
+ "properties": {
320
+ "expiresAt": { "format": "date-time", "type": "string" },
321
+ "key": { "minLength": 1, "type": "string" },
322
+ "revision": { "minLength": 1, "type": "string" },
323
+ "updatedAt": { "format": "date-time", "type": "string" },
324
+ "value": {},
325
+ },
326
+ "required": ["value", "revision", "updatedAt"],
327
+ "type": "object",
328
+ },
329
+ "migrationRequired": { "const": true, "type": "boolean" },
330
+ "stateVersion": { "minLength": 1, "type": "string" },
331
+ "writerContractDigest": { "minLength": 1, "type": "string" },
332
+ },
333
+ "required": [
334
+ "migrationRequired",
335
+ "entry",
336
+ "stateVersion",
337
+ "currentStateVersion",
338
+ "writerContractDigest",
339
+ ],
340
+ "type": "object",
341
+ }],
342
+ },
343
+ "type": "array",
344
+ },
345
+ "limit": { "minimum": 0, "type": "integer" },
346
+ "nextOffset": { "minimum": 0, "type": "integer" },
347
+ "offset": { "minimum": 0, "type": "integer" },
348
+ },
349
+ "required": ["entries", "count", "offset", "limit"],
350
+ "type": "object",
351
+ },
352
+ "StateDeleteRequest": {
353
+ "properties": {
354
+ "expectedRevision": { "minLength": 1, "type": "string" },
355
+ "key": { "minLength": 1, "type": "string" },
356
+ "store": { "minLength": 1, "type": "string" },
357
+ },
358
+ "required": ["store"],
359
+ "type": "object",
360
+ },
361
+ "StateDeleteResponse": {
362
+ "properties": { "deleted": { "type": "boolean" } },
363
+ "required": ["deleted"],
364
+ "type": "object",
365
+ },
366
+ "StateEntry": {
367
+ "properties": {
368
+ "expiresAt": { "format": "date-time", "type": "string" },
369
+ "key": { "minLength": 1, "type": "string" },
370
+ "revision": { "minLength": 1, "type": "string" },
371
+ "updatedAt": { "format": "date-time", "type": "string" },
372
+ "value": {},
373
+ },
374
+ "required": ["value", "revision", "updatedAt"],
375
+ "type": "object",
376
+ },
377
+ "StateGetRequest": {
378
+ "properties": {
379
+ "key": { "minLength": 1, "type": "string" },
380
+ "store": { "minLength": 1, "type": "string" },
381
+ },
382
+ "required": ["store"],
383
+ "type": "object",
384
+ },
385
+ "StateGetResponse": {
386
+ "anyOf": [{
387
+ "properties": { "found": { "const": false, "type": "boolean" } },
388
+ "required": ["found"],
389
+ "type": "object",
390
+ }, {
391
+ "properties": {
392
+ "entry": {
393
+ "properties": {
394
+ "expiresAt": { "format": "date-time", "type": "string" },
395
+ "key": { "minLength": 1, "type": "string" },
396
+ "revision": { "minLength": 1, "type": "string" },
397
+ "updatedAt": { "format": "date-time", "type": "string" },
398
+ "value": {},
399
+ },
400
+ "required": ["value", "revision", "updatedAt"],
401
+ "type": "object",
402
+ },
403
+ "found": { "const": true, "type": "boolean" },
404
+ },
405
+ "required": ["found", "entry"],
406
+ "type": "object",
407
+ }, {
408
+ "properties": {
409
+ "currentStateVersion": { "minLength": 1, "type": "string" },
410
+ "entry": {
411
+ "properties": {
412
+ "expiresAt": { "format": "date-time", "type": "string" },
413
+ "key": { "minLength": 1, "type": "string" },
414
+ "revision": { "minLength": 1, "type": "string" },
415
+ "updatedAt": { "format": "date-time", "type": "string" },
416
+ "value": {},
417
+ },
418
+ "required": ["value", "revision", "updatedAt"],
419
+ "type": "object",
420
+ },
421
+ "migrationRequired": { "const": true, "type": "boolean" },
422
+ "stateVersion": { "minLength": 1, "type": "string" },
423
+ "writerContractDigest": { "minLength": 1, "type": "string" },
424
+ },
425
+ "required": [
426
+ "migrationRequired",
427
+ "entry",
428
+ "stateVersion",
429
+ "currentStateVersion",
430
+ "writerContractDigest",
431
+ ],
432
+ "type": "object",
433
+ }],
434
+ },
435
+ "StateListRequest": {
436
+ "properties": {
437
+ "limit": { "minimum": 0, "type": "integer" },
438
+ "offset": { "minimum": 0, "type": "integer" },
439
+ "prefix": { "minLength": 1, "type": "string" },
440
+ "store": { "minLength": 1, "type": "string" },
441
+ },
442
+ "required": ["limit", "store"],
443
+ "type": "object",
444
+ },
445
+ "StateListResponse": {
446
+ "properties": {
447
+ "count": { "minimum": 0, "type": "integer" },
448
+ "entries": {
449
+ "default": [],
450
+ "items": {
451
+ "anyOf": [{
452
+ "properties": {
453
+ "expiresAt": { "format": "date-time", "type": "string" },
454
+ "key": { "minLength": 1, "type": "string" },
455
+ "revision": { "minLength": 1, "type": "string" },
456
+ "updatedAt": { "format": "date-time", "type": "string" },
457
+ "value": {},
458
+ },
459
+ "required": ["value", "revision", "updatedAt"],
460
+ "type": "object",
461
+ }, {
462
+ "properties": {
463
+ "currentStateVersion": { "minLength": 1, "type": "string" },
464
+ "entry": {
465
+ "properties": {
466
+ "expiresAt": { "format": "date-time", "type": "string" },
467
+ "key": { "minLength": 1, "type": "string" },
468
+ "revision": { "minLength": 1, "type": "string" },
469
+ "updatedAt": { "format": "date-time", "type": "string" },
470
+ "value": {},
471
+ },
472
+ "required": ["value", "revision", "updatedAt"],
473
+ "type": "object",
474
+ },
475
+ "migrationRequired": { "const": true, "type": "boolean" },
476
+ "stateVersion": { "minLength": 1, "type": "string" },
477
+ "writerContractDigest": { "minLength": 1, "type": "string" },
478
+ },
479
+ "required": [
480
+ "migrationRequired",
481
+ "entry",
482
+ "stateVersion",
483
+ "currentStateVersion",
484
+ "writerContractDigest",
485
+ ],
486
+ "type": "object",
487
+ }],
488
+ },
489
+ "type": "array",
490
+ },
491
+ "limit": { "minimum": 0, "type": "integer" },
492
+ "nextOffset": { "minimum": 0, "type": "integer" },
493
+ "offset": { "minimum": 0, "type": "integer" },
494
+ },
495
+ "required": ["entries", "count", "offset", "limit"],
496
+ "type": "object",
497
+ },
498
+ "StateMigrationRequired": {
499
+ "properties": {
500
+ "currentStateVersion": { "minLength": 1, "type": "string" },
501
+ "entry": {
502
+ "properties": {
503
+ "expiresAt": { "format": "date-time", "type": "string" },
504
+ "key": { "minLength": 1, "type": "string" },
505
+ "revision": { "minLength": 1, "type": "string" },
506
+ "updatedAt": { "format": "date-time", "type": "string" },
507
+ "value": {},
508
+ },
509
+ "required": ["value", "revision", "updatedAt"],
510
+ "type": "object",
511
+ },
512
+ "migrationRequired": { "const": true, "type": "boolean" },
513
+ "stateVersion": { "minLength": 1, "type": "string" },
514
+ "writerContractDigest": { "minLength": 1, "type": "string" },
515
+ },
516
+ "required": [
517
+ "migrationRequired",
518
+ "entry",
519
+ "stateVersion",
520
+ "currentStateVersion",
521
+ "writerContractDigest",
522
+ ],
523
+ "type": "object",
524
+ },
525
+ "StatePutRequest": {
526
+ "properties": {
527
+ "expectedRevision": {
528
+ "anyOf": [{ "minLength": 1, "type": "string" }, { "type": "null" }],
529
+ },
530
+ "key": { "minLength": 1, "type": "string" },
531
+ "store": { "minLength": 1, "type": "string" },
532
+ "ttlMs": { "minimum": 1, "type": "integer" },
533
+ "value": {},
534
+ },
535
+ "required": ["store", "value"],
536
+ "type": "object",
537
+ },
538
+ "StatePutResponse": {
539
+ "anyOf": [{
540
+ "properties": {
541
+ "applied": { "const": true, "type": "boolean" },
542
+ "entry": {
543
+ "properties": {
544
+ "expiresAt": { "format": "date-time", "type": "string" },
545
+ "key": { "minLength": 1, "type": "string" },
546
+ "revision": { "minLength": 1, "type": "string" },
547
+ "updatedAt": { "format": "date-time", "type": "string" },
548
+ "value": {},
549
+ },
550
+ "required": ["value", "revision", "updatedAt"],
551
+ "type": "object",
552
+ },
553
+ },
554
+ "required": ["applied", "entry"],
555
+ "type": "object",
556
+ }, {
557
+ "properties": {
558
+ "applied": { "const": false, "type": "boolean" },
559
+ "entry": {
560
+ "anyOf": [{
561
+ "properties": {
562
+ "expiresAt": { "format": "date-time", "type": "string" },
563
+ "key": { "minLength": 1, "type": "string" },
564
+ "revision": { "minLength": 1, "type": "string" },
565
+ "updatedAt": { "format": "date-time", "type": "string" },
566
+ "value": {},
567
+ },
568
+ "required": ["value", "revision", "updatedAt"],
569
+ "type": "object",
570
+ }, {
571
+ "properties": {
572
+ "currentStateVersion": { "minLength": 1, "type": "string" },
573
+ "entry": {
574
+ "properties": {
575
+ "expiresAt": { "format": "date-time", "type": "string" },
576
+ "key": { "minLength": 1, "type": "string" },
577
+ "revision": { "minLength": 1, "type": "string" },
578
+ "updatedAt": { "format": "date-time", "type": "string" },
579
+ "value": {},
580
+ },
581
+ "required": ["value", "revision", "updatedAt"],
582
+ "type": "object",
583
+ },
584
+ "migrationRequired": { "const": true, "type": "boolean" },
585
+ "stateVersion": { "minLength": 1, "type": "string" },
586
+ "writerContractDigest": { "minLength": 1, "type": "string" },
587
+ },
588
+ "required": [
589
+ "migrationRequired",
590
+ "entry",
591
+ "stateVersion",
592
+ "currentStateVersion",
593
+ "writerContractDigest",
594
+ ],
595
+ "type": "object",
596
+ }],
597
+ },
598
+ "found": { "type": "boolean" },
599
+ },
600
+ "required": ["applied", "found"],
601
+ "type": "object",
602
+ }],
603
+ },
604
+ "StateScope": {
605
+ "anyOf": [{ "const": "userApp", "type": "string" }, {
606
+ "const": "deviceApp",
607
+ "type": "string",
608
+ }],
609
+ },
610
+ "StateUserTarget": {
611
+ "properties": {
612
+ "id": { "minLength": 1, "type": "string" },
613
+ "origin": { "minLength": 1, "type": "string" },
614
+ "userId": { "minLength": 1, "type": "string" },
615
+ },
616
+ "required": ["origin", "id"],
617
+ "type": "object",
618
+ },
619
+ },
620
+ "uses": {
621
+ "required": {
622
+ "health": {
623
+ "contract": "trellis.health@v1",
624
+ "events": { "publish": ["Health.Heartbeat"] },
625
+ },
626
+ },
627
+ },
628
+ };
6
629
  function assertSelectedKeysExist(kind, keys, api) {
7
630
  if (!keys) {
8
631
  return;
@@ -25,27 +648,35 @@ export const sdk = {
25
648
  CONTRACT_DIGEST,
26
649
  CONTRACT,
27
650
  API,
28
- use: ((spec) => {
651
+ use: (spec) => {
29
652
  assertValidUseSpec(spec);
30
653
  const dependencyUse = {
31
654
  contract: CONTRACT_ID,
32
655
  ...(spec.rpc?.call ? { rpc: { call: [...spec.rpc.call] } } : {}),
33
- ...(spec.operations?.call ? { operations: { call: [...spec.operations.call] } } : {}),
656
+ ...(spec.operations?.call
657
+ ? { operations: { call: [...spec.operations.call] } }
658
+ : {}),
34
659
  ...((spec.events?.publish || spec.events?.subscribe)
35
660
  ? {
36
661
  events: {
37
- ...(spec.events.publish ? { publish: [...spec.events.publish] } : {}),
38
- ...(spec.events.subscribe ? { subscribe: [...spec.events.subscribe] } : {}),
662
+ ...(spec.events.publish
663
+ ? { publish: [...spec.events.publish] }
664
+ : {}),
665
+ ...(spec.events.subscribe
666
+ ? { subscribe: [...spec.events.subscribe] }
667
+ : {}),
39
668
  },
40
669
  }
41
670
  : {}),
42
- ...(spec.feeds?.subscribe ? { feeds: { subscribe: [...spec.feeds.subscribe] } } : {}),
671
+ ...(spec.feeds?.subscribe
672
+ ? { feeds: { subscribe: [...spec.feeds.subscribe] } }
673
+ : {}),
43
674
  };
44
675
  Object.defineProperty(dependencyUse, CONTRACT_MODULE_METADATA, {
45
676
  value: sdk,
46
677
  enumerable: false,
47
678
  });
48
679
  return dependencyUse;
49
- }),
680
+ },
50
681
  };
51
682
  export const use = sdk.use;