@sylphx/contract 0.5.0 → 0.6.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 (142) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/endpoint.d.ts +3 -1
  3. package/dist/endpoint.d.ts.map +1 -1
  4. package/dist/endpoints/admin-audit.d.ts +2 -2
  5. package/dist/endpoints/admin-audit.js +2 -2
  6. package/dist/endpoints/admin-bootstrap.js +3 -3
  7. package/dist/endpoints/admin-branch-databases.d.ts +1 -1
  8. package/dist/endpoints/admin-branch-databases.js +2 -2
  9. package/dist/endpoints/admin-envs-spec.d.ts +27 -0
  10. package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
  11. package/dist/endpoints/admin-envs-spec.js +25 -0
  12. package/dist/endpoints/admin-projects.d.ts +1 -1
  13. package/dist/endpoints/admin-rate-limits.d.ts +1 -1
  14. package/dist/endpoints/admin-rate-limits.js +3 -3
  15. package/dist/endpoints/admin-secrets.d.ts +3 -3
  16. package/dist/endpoints/admin-secrets.js +1 -1
  17. package/dist/endpoints/admin-services.d.ts +3 -3
  18. package/dist/endpoints/admin-services.d.ts.map +1 -1
  19. package/dist/endpoints/admin-services.js +4 -5
  20. package/dist/endpoints/branch-databases.d.ts +13 -7
  21. package/dist/endpoints/branch-databases.d.ts.map +1 -1
  22. package/dist/endpoints/branch-databases.js +3 -3
  23. package/dist/endpoints/databases.d.ts +100 -164
  24. package/dist/endpoints/databases.d.ts.map +1 -1
  25. package/dist/endpoints/databases.js +8 -35
  26. package/dist/endpoints/deployments.d.ts +1 -3
  27. package/dist/endpoints/deployments.d.ts.map +1 -1
  28. package/dist/endpoints/deployments.js +1 -1
  29. package/dist/endpoints/environments.d.ts +11 -42
  30. package/dist/endpoints/environments.d.ts.map +1 -1
  31. package/dist/endpoints/image-opt.d.ts +5 -13
  32. package/dist/endpoints/image-opt.d.ts.map +1 -1
  33. package/dist/endpoints/image-opt.js +6 -18
  34. package/dist/endpoints/kv-admin.d.ts +1 -2
  35. package/dist/endpoints/kv-admin.d.ts.map +1 -1
  36. package/dist/endpoints/kv-admin.js +1 -1
  37. package/dist/endpoints/kv.d.ts +19 -13
  38. package/dist/endpoints/kv.d.ts.map +1 -1
  39. package/dist/endpoints/kv.js +9 -9
  40. package/dist/endpoints/notifications.d.ts +7 -0
  41. package/dist/endpoints/notifications.d.ts.map +1 -1
  42. package/dist/endpoints/organizations.d.ts +8 -6
  43. package/dist/endpoints/organizations.d.ts.map +1 -1
  44. package/dist/endpoints/project-manifest.d.ts +196 -84
  45. package/dist/endpoints/project-manifest.d.ts.map +1 -1
  46. package/dist/endpoints/projects.d.ts +0 -8
  47. package/dist/endpoints/projects.d.ts.map +1 -1
  48. package/dist/endpoints/realtime-admin.d.ts +0 -1
  49. package/dist/endpoints/realtime-admin.d.ts.map +1 -1
  50. package/dist/endpoints/realtime-admin.js +1 -1
  51. package/dist/endpoints/regions.d.ts +2 -4
  52. package/dist/endpoints/regions.d.ts.map +1 -1
  53. package/dist/endpoints/regions.js +2 -2
  54. package/dist/endpoints/storage.d.ts +18 -0
  55. package/dist/endpoints/storage.d.ts.map +1 -1
  56. package/dist/endpoints/storage.js +11 -1
  57. package/dist/endpoints/tasks.d.ts +2 -6
  58. package/dist/endpoints/tasks.d.ts.map +1 -1
  59. package/dist/hono-app.d.ts +2 -2
  60. package/dist/hono-app.js +2 -2
  61. package/dist/index.d.ts +403 -350
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +4 -0
  64. package/dist/schemas/_primitives.d.ts +14 -0
  65. package/dist/schemas/_primitives.d.ts.map +1 -1
  66. package/dist/schemas/_primitives.js +16 -0
  67. package/dist/schemas/admin-audit.d.ts +4 -4
  68. package/dist/schemas/admin-audit.js +3 -3
  69. package/dist/schemas/admin-bootstrap.d.ts +1 -1
  70. package/dist/schemas/admin-bootstrap.js +1 -1
  71. package/dist/schemas/admin-builds.d.ts +1 -1
  72. package/dist/schemas/admin-builds.js +1 -1
  73. package/dist/schemas/admin-envs-spec.d.ts +49 -0
  74. package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
  75. package/dist/schemas/admin-envs-spec.js +58 -0
  76. package/dist/schemas/admin-projects.d.ts +2 -2
  77. package/dist/schemas/admin-projects.js +1 -1
  78. package/dist/schemas/admin-rate-limits.d.ts +2 -2
  79. package/dist/schemas/admin-rate-limits.js +2 -2
  80. package/dist/schemas/admin-secrets.d.ts +14 -14
  81. package/dist/schemas/admin-secrets.d.ts.map +1 -1
  82. package/dist/schemas/admin-secrets.js +10 -10
  83. package/dist/schemas/admin-services.d.ts +18 -22
  84. package/dist/schemas/admin-services.d.ts.map +1 -1
  85. package/dist/schemas/admin-services.js +15 -19
  86. package/dist/schemas/auth.d.ts +1 -0
  87. package/dist/schemas/auth.d.ts.map +1 -1
  88. package/dist/schemas/auth.js +1 -0
  89. package/dist/schemas/branch-database.d.ts +25 -18
  90. package/dist/schemas/branch-database.d.ts.map +1 -1
  91. package/dist/schemas/branch-database.js +15 -14
  92. package/dist/schemas/database.d.ts +13 -19
  93. package/dist/schemas/database.d.ts.map +1 -1
  94. package/dist/schemas/database.js +7 -19
  95. package/dist/schemas/deployment.d.ts +5 -7
  96. package/dist/schemas/deployment.d.ts.map +1 -1
  97. package/dist/schemas/deployment.js +6 -6
  98. package/dist/schemas/environment.d.ts +17 -31
  99. package/dist/schemas/environment.d.ts.map +1 -1
  100. package/dist/schemas/environment.js +11 -16
  101. package/dist/schemas/ids.d.ts +4 -0
  102. package/dist/schemas/ids.d.ts.map +1 -1
  103. package/dist/schemas/ids.js +2 -0
  104. package/dist/schemas/image-opt.d.ts +10 -11
  105. package/dist/schemas/image-opt.d.ts.map +1 -1
  106. package/dist/schemas/image-opt.js +11 -12
  107. package/dist/schemas/kv-admin.d.ts +1 -2
  108. package/dist/schemas/kv-admin.d.ts.map +1 -1
  109. package/dist/schemas/kv-admin.js +1 -2
  110. package/dist/schemas/kv.d.ts +12 -4
  111. package/dist/schemas/kv.d.ts.map +1 -1
  112. package/dist/schemas/kv.js +17 -5
  113. package/dist/schemas/notifications.d.ts +11 -0
  114. package/dist/schemas/notifications.d.ts.map +1 -1
  115. package/dist/schemas/notifications.js +11 -0
  116. package/dist/schemas/organization.d.ts +8 -6
  117. package/dist/schemas/organization.d.ts.map +1 -1
  118. package/dist/schemas/organization.js +11 -6
  119. package/dist/schemas/project-manifest.d.ts +384 -174
  120. package/dist/schemas/project-manifest.d.ts.map +1 -1
  121. package/dist/schemas/project-manifest.js +127 -50
  122. package/dist/schemas/project.d.ts +0 -6
  123. package/dist/schemas/project.d.ts.map +1 -1
  124. package/dist/schemas/project.js +0 -2
  125. package/dist/schemas/realtime-admin.d.ts +0 -1
  126. package/dist/schemas/realtime-admin.d.ts.map +1 -1
  127. package/dist/schemas/realtime-admin.js +0 -1
  128. package/dist/schemas/realtime.d.ts +2 -2
  129. package/dist/schemas/realtime.js +2 -2
  130. package/dist/schemas/region.d.ts +3 -21
  131. package/dist/schemas/region.d.ts.map +1 -1
  132. package/dist/schemas/region.js +2 -11
  133. package/dist/schemas/resources.d.ts +213 -164
  134. package/dist/schemas/resources.d.ts.map +1 -1
  135. package/dist/schemas/resources.js +87 -105
  136. package/dist/schemas/storage.d.ts +30 -1
  137. package/dist/schemas/storage.d.ts.map +1 -1
  138. package/dist/schemas/storage.js +20 -1
  139. package/dist/schemas/tasks.d.ts +3 -8
  140. package/dist/schemas/tasks.d.ts.map +1 -1
  141. package/dist/schemas/tasks.js +1 -4
  142. package/package.json +1 -1
@@ -34,9 +34,6 @@ export declare const environmentsEndpoints: {
34
34
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
35
35
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
36
36
  url: Schema.optional<typeof Schema.String>;
37
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
38
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
39
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
40
37
  createdAt: Schema.optional<typeof Schema.String>;
41
38
  updatedAt: Schema.optional<typeof Schema.String>;
42
39
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -87,9 +84,6 @@ export declare const environmentsEndpoints: {
87
84
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
88
85
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
89
86
  url: Schema.optional<typeof Schema.String>;
90
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
91
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
92
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
93
87
  createdAt: Schema.optional<typeof Schema.String>;
94
88
  updatedAt: Schema.optional<typeof Schema.String>;
95
89
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -119,14 +113,6 @@ export declare const environmentsEndpoints: {
119
113
  defaultFromName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
120
114
  publicNetworking: Schema.optional<typeof Schema.Boolean>;
121
115
  protection: Schema.optional<Schema.Literal<["open", "login-required"]>>;
122
- runtimeClassName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
123
- defaultSandboxImage: Schema.optional<Schema.NullOr<typeof Schema.String>>;
124
- defaultSecurityContext: Schema.optional<Schema.Struct<{
125
- runAsNonRoot: Schema.optional<typeof Schema.Boolean>;
126
- allowPrivilegeEscalation: Schema.optional<typeof Schema.Boolean>;
127
- privileged: Schema.optional<typeof Schema.Boolean>;
128
- }>>;
129
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
130
116
  settings: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
131
117
  }>, Schema.Struct<{
132
118
  id: Schema.brand<Schema.filter<typeof Schema.String>, "EnvironmentId">;
@@ -148,9 +134,6 @@ export declare const environmentsEndpoints: {
148
134
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
149
135
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
150
136
  url: Schema.optional<typeof Schema.String>;
151
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
152
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
153
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
154
137
  createdAt: Schema.optional<typeof Schema.String>;
155
138
  updatedAt: Schema.optional<typeof Schema.String>;
156
139
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -165,8 +148,8 @@ export declare const environmentsEndpoints: {
165
148
  }>, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
166
149
  force: Schema.optional<typeof Schema.Boolean>;
167
150
  }>, Schema.Struct<{
151
+ environmentId: Schema.brand<Schema.filter<typeof Schema.String>, "EnvironmentId">;
168
152
  envId: Schema.brand<Schema.filter<typeof Schema.String>, "EnvironmentId">;
169
- namespace: typeof Schema.String;
170
153
  status: typeof Schema.String;
171
154
  message: Schema.optional<typeof Schema.String>;
172
155
  }>, undefined>;
@@ -208,9 +191,6 @@ export declare const environmentsEndpoints: {
208
191
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
209
192
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
210
193
  url: Schema.optional<typeof Schema.String>;
211
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
212
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
213
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
214
194
  createdAt: Schema.optional<typeof Schema.String>;
215
195
  updatedAt: Schema.optional<typeof Schema.String>;
216
196
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -239,9 +219,6 @@ export declare const environmentsEndpoints: {
239
219
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
240
220
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
241
221
  url: Schema.optional<typeof Schema.String>;
242
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
243
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
244
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
245
222
  createdAt: Schema.optional<typeof Schema.String>;
246
223
  updatedAt: Schema.optional<typeof Schema.String>;
247
224
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -291,9 +268,6 @@ export declare const environmentsEndpoints: {
291
268
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
292
269
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
293
270
  url: Schema.optional<typeof Schema.String>;
294
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
295
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
296
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
297
271
  createdAt: Schema.optional<typeof Schema.String>;
298
272
  updatedAt: Schema.optional<typeof Schema.String>;
299
273
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -322,14 +296,6 @@ export declare const environmentsEndpoints: {
322
296
  defaultFromName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
323
297
  publicNetworking: Schema.optional<typeof Schema.Boolean>;
324
298
  protection: Schema.optional<Schema.Literal<["open", "login-required"]>>;
325
- runtimeClassName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
326
- defaultSandboxImage: Schema.optional<Schema.NullOr<typeof Schema.String>>;
327
- defaultSecurityContext: Schema.optional<Schema.Struct<{
328
- runAsNonRoot: Schema.optional<typeof Schema.Boolean>;
329
- allowPrivilegeEscalation: Schema.optional<typeof Schema.Boolean>;
330
- privileged: Schema.optional<typeof Schema.Boolean>;
331
- }>>;
332
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
333
299
  settings: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
334
300
  }>, Schema.Struct<{
335
301
  id: Schema.brand<Schema.filter<typeof Schema.String>, "EnvironmentId">;
@@ -351,9 +317,6 @@ export declare const environmentsEndpoints: {
351
317
  webhookUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
352
318
  settings: Schema.optional<Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>>;
353
319
  url: Schema.optional<typeof Schema.String>;
354
- deployAppId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
355
- namespace: Schema.optional<Schema.NullOr<typeof Schema.String>>;
356
- defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
357
320
  createdAt: Schema.optional<typeof Schema.String>;
358
321
  updatedAt: Schema.optional<typeof Schema.String>;
359
322
  status: Schema.optional<Schema.NullOr<Schema.Struct<{
@@ -453,15 +416,21 @@ export declare const environmentsEndpoints: {
453
416
  level: Schema.optional<typeof Schema.String>;
454
417
  limit: Schema.optional<typeof Schema.String>;
455
418
  }>, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
419
+ object: Schema.Literal<["list"]>;
456
420
  envId: Schema.brand<Schema.filter<typeof Schema.String>, "EnvironmentId">;
457
- logs: Schema.Array$<Schema.Struct<{
421
+ data: Schema.Array$<Schema.Struct<{
422
+ id: Schema.optional<typeof Schema.String>;
423
+ sequence: Schema.optional<typeof Schema.Number>;
458
424
  timestamp: typeof Schema.String;
459
425
  level: Schema.optional<Schema.NullOr<typeof Schema.String>>;
460
- message: typeof Schema.String;
461
- podName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
462
- containerName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
426
+ message: Schema.optional<typeof Schema.String>;
427
+ content: Schema.optional<typeof Schema.String>;
428
+ metadata: Schema.optional<Schema.NullOr<typeof Schema.Unknown>>;
429
+ traceId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
463
430
  source: Schema.optional<Schema.NullOr<typeof Schema.String>>;
464
431
  }>>;
432
+ deploymentId: Schema.optional<typeof Schema.String>;
433
+ deploymentStatus: Schema.optional<typeof Schema.String>;
465
434
  nextCursor: Schema.optional<Schema.NullOr<typeof Schema.String>>;
466
435
  }>, undefined>;
467
436
  };
@@ -1 +1 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/endpoints/environments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAmD/B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuMxB,CAAA"}
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/endpoints/environments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAmD/B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuMxB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Image Optimisation endpoints — Management plane for URL signing + a
3
- * public-plane forward route for the eventual imgproxy backend.
3
+ * platform-owned public image delivery route.
4
4
  *
5
5
  * Design reference: `docs/design/edge-functions-isr-image-opt.md` § 3.3 + § 6.
6
6
  *
@@ -8,9 +8,10 @@
8
8
  * - `management` — `POST /projects/:id/image-opt/sign` mints a signed URL
9
9
  * using the project's image-signing secret (server-side only, never
10
10
  * leaks into client bundles).
11
- * - Public forward: `GET /img/:signature/:params/:url` — stubbed in the
12
- * scaffold; declared here so the imgproxy infra PR can light it up
13
- * without touching the contract again.
11
+ *
12
+ * The public `/img/*` delivery route is intentionally not emitted into the
13
+ * Management OpenAPI document. Customers only need the signed URL returned by
14
+ * the sign endpoint; delivery internals remain platform-owned.
14
15
  */
15
16
  import { Schema } from 'effect';
16
17
  export declare const imageOptEndpoints: {
@@ -30,14 +31,5 @@ export declare const imageOptEndpoints: {
30
31
  params: typeof Schema.String;
31
32
  expiresIn: Schema.NullOr<typeof Schema.Number>;
32
33
  }>, undefined>;
33
- readonly forward: import("../endpoint.js").Endpoint<"GET", "/img/:signature/:params/:url", Schema.Struct<{
34
- signature: typeof Schema.String;
35
- params: typeof Schema.String;
36
- url: typeof Schema.String;
37
- }>, Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
38
- /** Scaffold response — replaced by the imgproxy forward once infra ships. */
39
- pending: typeof Schema.Boolean;
40
- message: typeof Schema.String;
41
- }>, undefined>;
42
34
  };
43
35
  //# sourceMappingURL=image-opt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-opt.d.ts","sourceRoot":"","sources":["../../src/endpoints/image-opt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAU/B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;QAkB3B,6EAA6E;;;;CAQtE,CAAA"}
1
+ {"version":3,"file":"image-opt.d.ts","sourceRoot":"","sources":["../../src/endpoints/image-opt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAapB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Image Optimisation endpoints — Management plane for URL signing + a
3
- * public-plane forward route for the eventual imgproxy backend.
3
+ * platform-owned public image delivery route.
4
4
  *
5
5
  * Design reference: `docs/design/edge-functions-isr-image-opt.md` § 3.3 + § 6.
6
6
  *
@@ -8,13 +8,14 @@
8
8
  * - `management` — `POST /projects/:id/image-opt/sign` mints a signed URL
9
9
  * using the project's image-signing secret (server-side only, never
10
10
  * leaks into client bundles).
11
- * - Public forward: `GET /img/:signature/:params/:url` — stubbed in the
12
- * scaffold; declared here so the imgproxy infra PR can light it up
13
- * without touching the contract again.
11
+ *
12
+ * The public `/img/*` delivery route is intentionally not emitted into the
13
+ * Management OpenAPI document. Customers only need the signed URL returned by
14
+ * the sign endpoint; delivery internals remain platform-owned.
14
15
  */
15
16
  import { Schema } from 'effect';
16
17
  import { defineEndpoint } from '../endpoint.js';
17
- import { ImageForwardParams, ImageOptimizationRequest, ImageOptimizationResult, } from '../schemas/image-opt.js';
18
+ import { ImageOptimizationRequest, ImageOptimizationResult } from '../schemas/image-opt.js';
18
19
  const ProjectPath = Schema.Struct({ id: Schema.String });
19
20
  export const imageOptEndpoints = {
20
21
  sign: defineEndpoint({
@@ -28,17 +29,4 @@ export const imageOptEndpoints = {
28
29
  description: "Returns an `img.sylphx.app` URL signed with the project's image-signing secret. The secret itself is never exposed. Used by `@sylphx/sdk/nextjs` image-loader and by the `sylphx image-url` CLI.",
29
30
  tags: ['image-opt'],
30
31
  }),
31
- forward: defineEndpoint({
32
- method: 'GET',
33
- path: '/img/:signature/:params/:url',
34
- params: ImageForwardParams,
35
- response: Schema.Struct({
36
- /** Scaffold response — replaced by the imgproxy forward once infra ships. */
37
- pending: Schema.Boolean,
38
- message: Schema.String,
39
- }),
40
- plane: 'management',
41
- summary: 'Forward a signed image request to the imgproxy backend (scaffold: returns pending)',
42
- tags: ['image-opt'],
43
- }),
44
32
  };
@@ -4,14 +4,13 @@
4
4
  *
5
5
  * Production mount: `/kv/*`. Naming `-admin` to avoid collision with the
6
6
  * BaaS `kvEndpoints` served by the standalone runtime at
7
- * `{ref}.api.sylphx.com/sdk/kv/*`.
7
+ * `{ref}.api.sylphx.com/kv/*`.
8
8
  */
9
9
  export declare const kvAdminEndpoints: {
10
10
  readonly getStatus: import("../endpoint.js").Endpoint<"GET", "/kv/status", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
11
11
  projectId: typeof import("effect/Schema").String;
12
12
  }>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
13
13
  available: typeof import("effect/Schema").Boolean;
14
- provider: typeof import("effect/Schema").String;
15
14
  }>, undefined>;
16
15
  readonly list: import("../endpoint.js").Endpoint<"GET", "/kv", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
17
16
  projectId: typeof import("effect/Schema").String;
@@ -1 +1 @@
1
- {"version":3,"file":"kv-admin.d.ts","sourceRoot":"","sources":["../../src/endpoints/kv-admin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnB,CAAA"}
1
+ {"version":3,"file":"kv-admin.d.ts","sourceRoot":"","sources":["../../src/endpoints/kv-admin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnB,CAAA"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Production mount: `/kv/*`. Naming `-admin` to avoid collision with the
6
6
  * BaaS `kvEndpoints` served by the standalone runtime at
7
- * `{ref}.api.sylphx.com/sdk/kv/*`.
7
+ * `{ref}.api.sylphx.com/kv/*`.
8
8
  */
9
9
  import { defineEndpoint } from '../endpoint.js';
10
10
  import { KvAdminDeleteResult, KvAdminGetResult, KvAdminKeyParams, KvAdminListQuery, KvAdminListResult, KvAdminProjectIdQuery, KvAdminSetInput, KvAdminSetResult, KvAdminStatsResult, KvAdminStatusResult, } from '../schemas/kv-admin.js';
@@ -1,56 +1,62 @@
1
1
  /**
2
2
  * KV endpoints — BaaS plane key-value store. Paths mirror `@sylphx/sdk` `kv.ts`
3
- * (served under `/sdk/kv/*` upstream on `<your-app>.api.sylphx.com`).
3
+ * (served under `/kv/*` upstream on `<your-app>.api.sylphx.com`).
4
4
  */
5
5
  import { Schema } from 'effect';
6
6
  export declare const kvEndpoints: {
7
- readonly set: import("../endpoint.js").Endpoint<"POST", "/sdk/kv/set", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
7
+ readonly set: import("../endpoint.js").Endpoint<"POST", "/kv", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
8
8
  key: typeof Schema.String;
9
9
  value: typeof Schema.Unknown;
10
10
  ex: Schema.optional<typeof Schema.Number>;
11
+ px: Schema.optional<typeof Schema.Number>;
12
+ exat: Schema.optional<typeof Schema.Number>;
13
+ pxat: Schema.optional<typeof Schema.Number>;
11
14
  nx: Schema.optional<typeof Schema.Boolean>;
12
15
  xx: Schema.optional<typeof Schema.Boolean>;
13
16
  }>, Schema.Struct<{
14
- ok: typeof Schema.Boolean;
17
+ success: typeof Schema.Boolean;
18
+ created: Schema.optional<typeof Schema.Boolean>;
15
19
  }>, undefined>;
16
- readonly get: import("../endpoint.js").Endpoint<"GET", "/sdk/kv/get/:key", Schema.Struct<{
20
+ readonly get: import("../endpoint.js").Endpoint<"GET", "/kv/:key", Schema.Struct<{
17
21
  key: typeof Schema.String;
18
22
  }>, Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
19
23
  value: Schema.NullOr<typeof Schema.Unknown>;
24
+ ttl: Schema.NullOr<typeof Schema.Number>;
20
25
  }>, undefined>;
21
- readonly delete: import("../endpoint.js").Endpoint<"DELETE", "/sdk/kv/delete/:key", Schema.Struct<{
26
+ readonly delete: import("../endpoint.js").Endpoint<"DELETE", "/kv/:key", Schema.Struct<{
22
27
  key: typeof Schema.String;
23
28
  }>, Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
24
29
  deleted: typeof Schema.Number;
25
30
  }>, undefined>;
26
- readonly exists: import("../endpoint.js").Endpoint<"GET", "/sdk/kv/exists/:key", Schema.Struct<{
31
+ readonly exists: import("../endpoint.js").Endpoint<"GET", "/kv/exists/:key", Schema.Struct<{
27
32
  key: typeof Schema.String;
28
33
  }>, Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
29
34
  exists: typeof Schema.Boolean;
30
35
  }>, undefined>;
31
- readonly incr: import("../endpoint.js").Endpoint<"POST", "/sdk/kv/incr", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
36
+ readonly incr: import("../endpoint.js").Endpoint<"POST", "/kv/incr", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
32
37
  key: typeof Schema.String;
33
38
  by: Schema.optional<typeof Schema.Number>;
34
39
  }>, Schema.Struct<{
35
40
  value: typeof Schema.Number;
36
41
  }>, undefined>;
37
- readonly expire: import("../endpoint.js").Endpoint<"POST", "/sdk/kv/expire", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
42
+ readonly expire: import("../endpoint.js").Endpoint<"POST", "/kv/expire", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
38
43
  key: typeof Schema.String;
39
44
  seconds: typeof Schema.Number;
40
45
  }>, Schema.Struct<{
41
- ok: typeof Schema.Boolean;
46
+ success: typeof Schema.Boolean;
47
+ created: Schema.optional<typeof Schema.Boolean>;
42
48
  }>, undefined>;
43
- readonly rateLimit: import("../endpoint.js").Endpoint<"POST", "/sdk/kv/ratelimit", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
44
- identifier: typeof Schema.String;
49
+ readonly rateLimit: import("../endpoint.js").Endpoint<"POST", "/kv/ratelimit", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
50
+ key: typeof Schema.String;
45
51
  limit: typeof Schema.Number;
46
- window: typeof Schema.Number;
52
+ window: typeof Schema.String;
47
53
  }>, Schema.Struct<{
48
54
  success: typeof Schema.Boolean;
49
55
  limit: typeof Schema.Number;
50
56
  remaining: typeof Schema.Number;
51
57
  reset: typeof Schema.Number;
52
58
  }>, undefined>;
53
- readonly scan: import("../endpoint.js").Endpoint<"GET", "/sdk/kv/scan", Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
59
+ readonly scan: import("../endpoint.js").Endpoint<"GET", "/kv/scan", Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
54
60
  pattern: Schema.optional<typeof Schema.String>;
55
61
  cursor: Schema.optional<typeof Schema.String>;
56
62
  count: Schema.optional<typeof Schema.String>;
@@ -1 +1 @@
1
- {"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/endpoints/kv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAmB/B,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEd,CAAA"}
1
+ {"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../src/endpoints/kv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAmB/B,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEd,CAAA"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * KV endpoints — BaaS plane key-value store. Paths mirror `@sylphx/sdk` `kv.ts`
3
- * (served under `/sdk/kv/*` upstream on `<your-app>.api.sylphx.com`).
3
+ * (served under `/kv/*` upstream on `<your-app>.api.sylphx.com`).
4
4
  */
5
5
  import { Schema } from 'effect';
6
6
  import { defineEndpoint } from '../endpoint.js';
@@ -9,7 +9,7 @@ const KeyPath = Schema.Struct({ key: Schema.String });
9
9
  export const kvEndpoints = {
10
10
  set: defineEndpoint({
11
11
  method: 'POST',
12
- path: '/sdk/kv/set',
12
+ path: '/kv',
13
13
  body: KvSetInput,
14
14
  response: KvSetResult,
15
15
  plane: 'baas',
@@ -18,7 +18,7 @@ export const kvEndpoints = {
18
18
  }),
19
19
  get: defineEndpoint({
20
20
  method: 'GET',
21
- path: '/sdk/kv/get/:key',
21
+ path: '/kv/:key',
22
22
  params: KeyPath,
23
23
  response: KvGetResult,
24
24
  plane: 'baas',
@@ -27,7 +27,7 @@ export const kvEndpoints = {
27
27
  }),
28
28
  delete: defineEndpoint({
29
29
  method: 'DELETE',
30
- path: '/sdk/kv/delete/:key',
30
+ path: '/kv/:key',
31
31
  params: KeyPath,
32
32
  response: KvDeleteResult,
33
33
  plane: 'baas',
@@ -36,7 +36,7 @@ export const kvEndpoints = {
36
36
  }),
37
37
  exists: defineEndpoint({
38
38
  method: 'GET',
39
- path: '/sdk/kv/exists/:key',
39
+ path: '/kv/exists/:key',
40
40
  params: KeyPath,
41
41
  response: KvExistsResult,
42
42
  plane: 'baas',
@@ -45,7 +45,7 @@ export const kvEndpoints = {
45
45
  }),
46
46
  incr: defineEndpoint({
47
47
  method: 'POST',
48
- path: '/sdk/kv/incr',
48
+ path: '/kv/incr',
49
49
  body: KvIncrInput,
50
50
  response: KvIncrResult,
51
51
  plane: 'baas',
@@ -54,7 +54,7 @@ export const kvEndpoints = {
54
54
  }),
55
55
  expire: defineEndpoint({
56
56
  method: 'POST',
57
- path: '/sdk/kv/expire',
57
+ path: '/kv/expire',
58
58
  body: KvExpireInput,
59
59
  response: KvSetResult,
60
60
  plane: 'baas',
@@ -63,7 +63,7 @@ export const kvEndpoints = {
63
63
  }),
64
64
  rateLimit: defineEndpoint({
65
65
  method: 'POST',
66
- path: '/sdk/kv/ratelimit',
66
+ path: '/kv/ratelimit',
67
67
  body: KvRateLimitInput,
68
68
  response: KvRateLimitResult,
69
69
  plane: 'baas',
@@ -72,7 +72,7 @@ export const kvEndpoints = {
72
72
  }),
73
73
  scan: defineEndpoint({
74
74
  method: 'GET',
75
- path: '/sdk/kv/scan',
75
+ path: '/kv/scan',
76
76
  query: KvScanQuery,
77
77
  response: KvScanResult,
78
78
  plane: 'baas',
@@ -36,6 +36,13 @@ export declare const notificationsEndpoints: {
36
36
  status: import("effect/Schema").optional<import("effect/Schema").Literal<["delivered", "queued", "failed"]>>;
37
37
  messageId: import("effect/Schema").optional<typeof import("effect/Schema").String>;
38
38
  reason: import("effect/Schema").optional<typeof import("effect/Schema").String>;
39
+ sent: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
40
+ failed: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
41
+ platforms: import("effect/Schema").optional<import("effect/Schema").Struct<{
42
+ web: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
43
+ ios: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
44
+ android: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
45
+ }>>;
39
46
  sentTo: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
40
47
  expired: import("effect/Schema").optional<typeof import("effect/Schema").Number>;
41
48
  }>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/endpoints/notifications.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6IzB,CAAA"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/endpoints/notifications.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6IzB,CAAA"}
@@ -77,8 +77,10 @@ export declare const organizationsEndpoints: {
77
77
  projectCount: typeof Schema.Number;
78
78
  }>, undefined>;
79
79
  readonly create: import("../endpoint.js").Endpoint<"POST", "/orgs", Schema.Schema.AnyNoContext | undefined, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
80
- name: typeof Schema.String;
81
- slug: typeof Schema.String;
80
+ name: Schema.filter<Schema.filter<typeof Schema.String>>;
81
+ slug: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
82
+ email: Schema.optional<Schema.filter<typeof Schema.String>>;
83
+ metadata: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
82
84
  }>, Schema.Struct<{
83
85
  id: Schema.brand<Schema.filter<typeof Schema.String>, "OrgId">;
84
86
  slug: typeof Schema.String;
@@ -94,10 +96,10 @@ export declare const organizationsEndpoints: {
94
96
  readonly update: import("../endpoint.js").Endpoint<"PATCH", "/orgs/:orgId", Schema.Struct<{
95
97
  orgId: typeof Schema.String;
96
98
  }>, Schema.Schema.AnyNoContext | undefined, Schema.Struct<{
97
- name: Schema.optional<typeof Schema.String>;
98
- slug: Schema.optional<typeof Schema.String>;
99
- email: Schema.optional<Schema.NullOr<typeof Schema.String>>;
100
- billingEmail: Schema.optional<Schema.NullOr<typeof Schema.String>>;
99
+ name: Schema.optional<Schema.filter<Schema.filter<typeof Schema.String>>>;
100
+ slug: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
101
+ email: Schema.optional<Schema.NullOr<Schema.filter<typeof Schema.String>>>;
102
+ billingEmail: Schema.optional<Schema.NullOr<Schema.filter<typeof Schema.String>>>;
101
103
  logoUrl: Schema.optional<Schema.NullOr<typeof Schema.String>>;
102
104
  }>, Schema.Struct<{
103
105
  id: Schema.brand<Schema.filter<typeof Schema.String>, "OrgId">;
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/endpoints/organizations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAoZ/B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IzB,CAAA"}
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/endpoints/organizations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAoZ/B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IzB,CAAA"}