@sylphx/contract 0.5.1 → 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.
- package/CHANGELOG.md +6 -0
- package/dist/endpoint.d.ts +3 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoints/admin-audit.d.ts +2 -2
- package/dist/endpoints/admin-audit.js +2 -2
- package/dist/endpoints/admin-bootstrap.js +3 -3
- package/dist/endpoints/admin-branch-databases.d.ts +1 -1
- package/dist/endpoints/admin-branch-databases.js +2 -2
- package/dist/endpoints/admin-envs-spec.d.ts +27 -0
- package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
- package/dist/endpoints/admin-envs-spec.js +25 -0
- package/dist/endpoints/admin-projects.d.ts +1 -1
- package/dist/endpoints/admin-rate-limits.d.ts +1 -1
- package/dist/endpoints/admin-rate-limits.js +3 -3
- package/dist/endpoints/admin-secrets.d.ts +3 -3
- package/dist/endpoints/admin-secrets.js +1 -1
- package/dist/endpoints/admin-services.d.ts +3 -3
- package/dist/endpoints/admin-services.d.ts.map +1 -1
- package/dist/endpoints/admin-services.js +4 -5
- package/dist/endpoints/branch-databases.d.ts +13 -7
- package/dist/endpoints/branch-databases.d.ts.map +1 -1
- package/dist/endpoints/branch-databases.js +3 -3
- package/dist/endpoints/databases.d.ts +100 -164
- package/dist/endpoints/databases.d.ts.map +1 -1
- package/dist/endpoints/databases.js +8 -35
- package/dist/endpoints/deployments.d.ts +1 -3
- package/dist/endpoints/deployments.d.ts.map +1 -1
- package/dist/endpoints/deployments.js +1 -1
- package/dist/endpoints/environments.d.ts +11 -42
- package/dist/endpoints/environments.d.ts.map +1 -1
- package/dist/endpoints/image-opt.d.ts +5 -13
- package/dist/endpoints/image-opt.d.ts.map +1 -1
- package/dist/endpoints/image-opt.js +6 -18
- package/dist/endpoints/kv-admin.d.ts +0 -1
- package/dist/endpoints/kv-admin.d.ts.map +1 -1
- package/dist/endpoints/organizations.d.ts +8 -6
- package/dist/endpoints/organizations.d.ts.map +1 -1
- package/dist/endpoints/project-manifest.d.ts +90 -84
- package/dist/endpoints/project-manifest.d.ts.map +1 -1
- package/dist/endpoints/projects.d.ts +0 -8
- package/dist/endpoints/projects.d.ts.map +1 -1
- package/dist/endpoints/realtime-admin.d.ts +0 -1
- package/dist/endpoints/realtime-admin.d.ts.map +1 -1
- package/dist/endpoints/realtime-admin.js +1 -1
- package/dist/endpoints/regions.d.ts +2 -4
- package/dist/endpoints/regions.d.ts.map +1 -1
- package/dist/endpoints/regions.js +2 -2
- package/dist/endpoints/tasks.d.ts +2 -6
- package/dist/endpoints/tasks.d.ts.map +1 -1
- package/dist/hono-app.d.ts +2 -2
- package/dist/hono-app.js +2 -2
- package/dist/index.d.ts +254 -338
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/schemas/_primitives.d.ts +14 -0
- package/dist/schemas/_primitives.d.ts.map +1 -1
- package/dist/schemas/_primitives.js +16 -0
- package/dist/schemas/admin-audit.d.ts +4 -4
- package/dist/schemas/admin-audit.js +3 -3
- package/dist/schemas/admin-bootstrap.d.ts +1 -1
- package/dist/schemas/admin-bootstrap.js +1 -1
- package/dist/schemas/admin-builds.d.ts +1 -1
- package/dist/schemas/admin-builds.js +1 -1
- package/dist/schemas/admin-envs-spec.d.ts +49 -0
- package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
- package/dist/schemas/admin-envs-spec.js +58 -0
- package/dist/schemas/admin-projects.d.ts +2 -2
- package/dist/schemas/admin-projects.js +1 -1
- package/dist/schemas/admin-rate-limits.d.ts +2 -2
- package/dist/schemas/admin-rate-limits.js +2 -2
- package/dist/schemas/admin-secrets.d.ts +14 -14
- package/dist/schemas/admin-secrets.d.ts.map +1 -1
- package/dist/schemas/admin-secrets.js +10 -10
- package/dist/schemas/admin-services.d.ts +18 -22
- package/dist/schemas/admin-services.d.ts.map +1 -1
- package/dist/schemas/admin-services.js +15 -19
- package/dist/schemas/branch-database.d.ts +25 -18
- package/dist/schemas/branch-database.d.ts.map +1 -1
- package/dist/schemas/branch-database.js +15 -14
- package/dist/schemas/database.d.ts +13 -19
- package/dist/schemas/database.d.ts.map +1 -1
- package/dist/schemas/database.js +7 -19
- package/dist/schemas/deployment.d.ts +5 -7
- package/dist/schemas/deployment.d.ts.map +1 -1
- package/dist/schemas/deployment.js +6 -6
- package/dist/schemas/environment.d.ts +17 -31
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js +11 -16
- package/dist/schemas/ids.d.ts +4 -0
- package/dist/schemas/ids.d.ts.map +1 -1
- package/dist/schemas/ids.js +2 -0
- package/dist/schemas/image-opt.d.ts +10 -11
- package/dist/schemas/image-opt.d.ts.map +1 -1
- package/dist/schemas/image-opt.js +11 -12
- package/dist/schemas/kv-admin.d.ts +0 -1
- package/dist/schemas/kv-admin.d.ts.map +1 -1
- package/dist/schemas/kv-admin.js +0 -1
- package/dist/schemas/organization.d.ts +8 -6
- package/dist/schemas/organization.d.ts.map +1 -1
- package/dist/schemas/organization.js +11 -6
- package/dist/schemas/project-manifest.d.ts +180 -187
- package/dist/schemas/project-manifest.d.ts.map +1 -1
- package/dist/schemas/project-manifest.js +62 -57
- package/dist/schemas/project.d.ts +0 -6
- package/dist/schemas/project.d.ts.map +1 -1
- package/dist/schemas/project.js +0 -2
- package/dist/schemas/realtime-admin.d.ts +0 -1
- package/dist/schemas/realtime-admin.d.ts.map +1 -1
- package/dist/schemas/realtime-admin.js +0 -1
- package/dist/schemas/realtime.d.ts +2 -2
- package/dist/schemas/realtime.js +2 -2
- package/dist/schemas/region.d.ts +3 -21
- package/dist/schemas/region.d.ts.map +1 -1
- package/dist/schemas/region.js +2 -11
- package/dist/schemas/resources.d.ts +213 -164
- package/dist/schemas/resources.d.ts.map +1 -1
- package/dist/schemas/resources.js +87 -105
- package/dist/schemas/storage.d.ts +1 -1
- package/dist/schemas/storage.js +1 -1
- package/dist/schemas/tasks.d.ts +3 -8
- package/dist/schemas/tasks.d.ts.map +1 -1
- package/dist/schemas/tasks.js +1 -4
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FZ,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,eAAe,CAAA;AAI7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,sCAAsC,EAAE,MAAM,iDAAiD,CAAA;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,GACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,cAAc,aAAa,CAAA;AAM3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAGzD,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qCAAqC,CAAA;AACnD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+CAA+C,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kCAAkC,CAAA;AAChD,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,yCAAyC,CAAA;AACvD,cAAc,oCAAoC,CAAA;AAClD,cAAc,qCAAqC,CAAA;AACnD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AA+FrC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FZ,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,7 @@ export { adminBuildsEndpoints } from './endpoints/admin-builds.js';
|
|
|
30
30
|
export { adminConfigEndpoints } from './endpoints/admin-config.js';
|
|
31
31
|
export { adminConsentEndpoints } from './endpoints/admin-consent.js';
|
|
32
32
|
export { adminEnvServicesEndpoints } from './endpoints/admin-env-services.js';
|
|
33
|
+
export { adminEnvsSpecEndpoints } from './endpoints/admin-envs-spec.js';
|
|
33
34
|
export { adminImpersonationEndpoints } from './endpoints/admin-impersonation.js';
|
|
34
35
|
export { adminInvitationsEndpoints } from './endpoints/admin-invitations.js';
|
|
35
36
|
export { adminJwtKeysEndpoints } from './endpoints/admin-jwt-keys.js';
|
|
@@ -120,6 +121,7 @@ export * from './schemas/admin-broadcasts.js';
|
|
|
120
121
|
export * from './schemas/admin-config.js';
|
|
121
122
|
export * from './schemas/admin-consent.js';
|
|
122
123
|
export * from './schemas/admin-env-services.js';
|
|
124
|
+
export * from './schemas/admin-envs-spec.js';
|
|
123
125
|
export * from './schemas/admin-impersonation.js';
|
|
124
126
|
export * from './schemas/admin-invitations.js';
|
|
125
127
|
export * from './schemas/admin-jwt-keys.js';
|
|
@@ -215,6 +217,7 @@ import { adminBuildsEndpoints } from './endpoints/admin-builds.js';
|
|
|
215
217
|
import { adminConfigEndpoints } from './endpoints/admin-config.js';
|
|
216
218
|
import { adminConsentEndpoints } from './endpoints/admin-consent.js';
|
|
217
219
|
import { adminEnvServicesEndpoints } from './endpoints/admin-env-services.js';
|
|
220
|
+
import { adminEnvsSpecEndpoints } from './endpoints/admin-envs-spec.js';
|
|
218
221
|
import { adminImpersonationEndpoints } from './endpoints/admin-impersonation.js';
|
|
219
222
|
import { adminInvitationsEndpoints } from './endpoints/admin-invitations.js';
|
|
220
223
|
import { adminJwtKeysEndpoints } from './endpoints/admin-jwt-keys.js';
|
|
@@ -315,6 +318,7 @@ export const endpoints = {
|
|
|
315
318
|
adminBroadcasts: adminBroadcastsEndpoints,
|
|
316
319
|
adminConfig: adminConfigEndpoints,
|
|
317
320
|
adminEnvServices: adminEnvServicesEndpoints,
|
|
321
|
+
adminEnvsSpec: adminEnvsSpecEndpoints,
|
|
318
322
|
adminConsent: adminConsentEndpoints,
|
|
319
323
|
adminImpersonation: adminImpersonationEndpoints,
|
|
320
324
|
adminInvitations: adminInvitationsEndpoints,
|
|
@@ -34,4 +34,18 @@ export declare const EMAIL_REGEX: RegExp;
|
|
|
34
34
|
/** Effect Schema email validator — wraps {@link EMAIL_REGEX}. */
|
|
35
35
|
export declare const Email: Schema.filter<typeof Schema.String>;
|
|
36
36
|
export type Email = typeof Email.Type;
|
|
37
|
+
/**
|
|
38
|
+
* Git commit SHA (SHA-1 or SHA-256) in hex.
|
|
39
|
+
*
|
|
40
|
+
* Accepts the common short form (>=7 chars) and full hashes:
|
|
41
|
+
* - SHA-1: 40 hex
|
|
42
|
+
* - SHA-256: 64 hex
|
|
43
|
+
*
|
|
44
|
+
* We constrain to hex to avoid reflected-input surfaces where user-supplied
|
|
45
|
+
* strings can be echoed back into UI/CLI messages.
|
|
46
|
+
*/
|
|
47
|
+
export declare const GIT_COMMIT_SHA_REGEX: RegExp;
|
|
48
|
+
/** Effect Schema git commit SHA validator — wraps {@link GIT_COMMIT_SHA_REGEX}. */
|
|
49
|
+
export declare const GitCommitSha: Schema.filter<typeof Schema.String>;
|
|
50
|
+
export type GitCommitSha = typeof GitCommitSha.Type;
|
|
37
51
|
//# sourceMappingURL=_primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_primitives.d.ts","sourceRoot":"","sources":["../../src/schemas/_primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,QAA+B,CAAA;AAEvD,iEAAiE;AACjE,eAAO,MAAM,KAAK,qCAIjB,CAAA;AACD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"_primitives.d.ts","sourceRoot":"","sources":["../../src/schemas/_primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,QAA+B,CAAA;AAEvD,iEAAiE;AACjE,eAAO,MAAM,KAAK,qCAIjB,CAAA;AACD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAAsB,CAAA;AAEvD,mFAAmF;AACnF,eAAO,MAAM,YAAY,qCAIxB,CAAA;AACD,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA"}
|
|
@@ -36,3 +36,19 @@ export const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
|
36
36
|
export const Email = Schema.String.pipe(Schema.pattern(EMAIL_REGEX, {
|
|
37
37
|
message: () => 'must look like a valid email address',
|
|
38
38
|
}));
|
|
39
|
+
// ─── Git commit SHA ───────────────────────────────────────────────────────
|
|
40
|
+
/**
|
|
41
|
+
* Git commit SHA (SHA-1 or SHA-256) in hex.
|
|
42
|
+
*
|
|
43
|
+
* Accepts the common short form (>=7 chars) and full hashes:
|
|
44
|
+
* - SHA-1: 40 hex
|
|
45
|
+
* - SHA-256: 64 hex
|
|
46
|
+
*
|
|
47
|
+
* We constrain to hex to avoid reflected-input surfaces where user-supplied
|
|
48
|
+
* strings can be echoed back into UI/CLI messages.
|
|
49
|
+
*/
|
|
50
|
+
export const GIT_COMMIT_SHA_REGEX = /^[a-f0-9]{7,64}$/i;
|
|
51
|
+
/** Effect Schema git commit SHA validator — wraps {@link GIT_COMMIT_SHA_REGEX}. */
|
|
52
|
+
export const GitCommitSha = Schema.String.pipe(Schema.pattern(GIT_COMMIT_SHA_REGEX, {
|
|
53
|
+
message: () => 'must be a hex git commit SHA (7–64 characters)',
|
|
54
|
+
}));
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* The audit subtree aggregates data from many per-project databases. Where a
|
|
8
8
|
* handler's shape is stable enough to lock down, we expose a typed
|
|
9
9
|
* `Schema.Struct(...)`. Where the payload is a pass-through from an evolving
|
|
10
|
-
* external
|
|
10
|
+
* external observability or database metrics surface, we keep an envelope
|
|
11
11
|
* (`Schema.Struct({ available, ... })`) with the opaque tail as
|
|
12
12
|
* `Schema.Unknown` — giving consumers a guaranteed outer shape while letting
|
|
13
13
|
* the inner data evolve without contract bumps.
|
|
@@ -512,7 +512,7 @@ export declare const AdminAuditObsMetricsResult: Schema.Struct<{
|
|
|
512
512
|
latencyP95: Schema.Array$<typeof Schema.Unknown>;
|
|
513
513
|
cpuUsage: Schema.Array$<typeof Schema.Unknown>;
|
|
514
514
|
memoryUsage: Schema.Array$<typeof Schema.Unknown>;
|
|
515
|
-
|
|
515
|
+
instanceCount: Schema.Array$<typeof Schema.Unknown>;
|
|
516
516
|
}>;
|
|
517
517
|
export type AdminAuditObsMetricsResult = typeof AdminAuditObsMetricsResult.Type;
|
|
518
518
|
export declare const AdminAuditObsMetricsRangeResult: Schema.Struct<{
|
|
@@ -818,7 +818,7 @@ export declare const AdminAuditServiceEnvelope: Schema.Struct<{
|
|
|
818
818
|
export type AdminAuditServiceEnvelope = typeof AdminAuditServiceEnvelope.Type;
|
|
819
819
|
/**
|
|
820
820
|
* `/obs/traces/:traceId` returns the raw Tempo payload; `/database/*` returns
|
|
821
|
-
* a
|
|
821
|
+
* a database real-time metrics passthrough. Both are owned by upstream stores
|
|
822
822
|
* with their own versioning contract — we expose as `Schema.Unknown` and
|
|
823
823
|
* accept that changes track the upstream.
|
|
824
824
|
*/
|
|
@@ -848,7 +848,7 @@ export type AdminGetMonitoringServiceDataResult = AdminAuditServiceEnvelope;
|
|
|
848
848
|
export type AdminGetStorageServiceDataResult = AdminAuditServiceEnvelope;
|
|
849
849
|
/**
|
|
850
850
|
* Database admin dashboard data envelope (`/database/metrics`, `/database/tables`,
|
|
851
|
-
* `/database/queries`). Mirrors the
|
|
851
|
+
* `/database/queries`). Mirrors the database real-time passthrough from above.
|
|
852
852
|
*/
|
|
853
853
|
export type AdminDatabaseMetricsResult = AdminAuditUnknownResult;
|
|
854
854
|
export type AdminDatabaseQueriesResult = AdminAuditUnknownResult;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* The audit subtree aggregates data from many per-project databases. Where a
|
|
8
8
|
* handler's shape is stable enough to lock down, we expose a typed
|
|
9
9
|
* `Schema.Struct(...)`. Where the payload is a pass-through from an evolving
|
|
10
|
-
* external
|
|
10
|
+
* external observability or database metrics surface, we keep an envelope
|
|
11
11
|
* (`Schema.Struct({ available, ... })`) with the opaque tail as
|
|
12
12
|
* `Schema.Unknown` — giving consumers a guaranteed outer shape while letting
|
|
13
13
|
* the inner data evolve without contract bumps.
|
|
@@ -433,7 +433,7 @@ export const AdminAuditObsMetricsResult = Schema.Struct({
|
|
|
433
433
|
latencyP95: Schema.Array(Schema.Unknown),
|
|
434
434
|
cpuUsage: Schema.Array(Schema.Unknown),
|
|
435
435
|
memoryUsage: Schema.Array(Schema.Unknown),
|
|
436
|
-
|
|
436
|
+
instanceCount: Schema.Array(Schema.Unknown),
|
|
437
437
|
});
|
|
438
438
|
export const AdminAuditObsMetricsRangeResult = Schema.Struct({
|
|
439
439
|
series: Schema.Array(Schema.Unknown),
|
|
@@ -685,7 +685,7 @@ export const AdminAuditServiceEnvelope = Schema.Struct({
|
|
|
685
685
|
// ── Remaining opaque passthrough (database metrics / queries / tables) ────
|
|
686
686
|
/**
|
|
687
687
|
* `/obs/traces/:traceId` returns the raw Tempo payload; `/database/*` returns
|
|
688
|
-
* a
|
|
688
|
+
* a database real-time metrics passthrough. Both are owned by upstream stores
|
|
689
689
|
* with their own versioning contract — we expose as `Schema.Unknown` and
|
|
690
690
|
* accept that changes track the upstream.
|
|
691
691
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Admin Bootstrap — reset-bootstrap-window schema (ADR-089 §2.7 Phase 7 Commit B).
|
|
3
3
|
*
|
|
4
4
|
* Platform-plane endpoint that forcibly re-opens the Appwrite-pattern
|
|
5
|
-
* bootstrap window for an already-booted
|
|
5
|
+
* bootstrap window for an already-booted installation. The window normally
|
|
6
6
|
* opens ONCE at first boot (SETNX with 10-min TTL) and closes itself on
|
|
7
7
|
* first successful super-admin signup. This reset path is the documented
|
|
8
8
|
* recovery for:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Admin Bootstrap — reset-bootstrap-window schema (ADR-089 §2.7 Phase 7 Commit B).
|
|
3
3
|
*
|
|
4
4
|
* Platform-plane endpoint that forcibly re-opens the Appwrite-pattern
|
|
5
|
-
* bootstrap window for an already-booted
|
|
5
|
+
* bootstrap window for an already-booted installation. The window normally
|
|
6
6
|
* opens ONCE at first boot (SETNX with 10-min TTL) and closes itself on
|
|
7
7
|
* first successful super-admin signup. This reset path is the documented
|
|
8
8
|
* recovery for:
|
|
@@ -24,7 +24,7 @@ import { Schema } from 'effect';
|
|
|
24
24
|
* - `olderThan` — required. Any `build_records` row whose `status='building'`
|
|
25
25
|
* AND whose `started_at < NOW() - <olderThan>` is in the candidate set.
|
|
26
26
|
* Rows whose `started_at IS NULL` are NOT touched: a NULL `started_at`
|
|
27
|
-
* means the
|
|
27
|
+
* means the build worker never transitioned to Active, which is a different
|
|
28
28
|
* failure mode (queue starvation) handled by a separate runbook.
|
|
29
29
|
* - `dryRun` — when true, the endpoint returns the candidate set without
|
|
30
30
|
* mutating anything. `reason` becomes optional in this mode.
|
|
@@ -52,7 +52,7 @@ const Reason = Schema.String.pipe(Schema.minLength(3), Schema.maxLength(500));
|
|
|
52
52
|
* - `olderThan` — required. Any `build_records` row whose `status='building'`
|
|
53
53
|
* AND whose `started_at < NOW() - <olderThan>` is in the candidate set.
|
|
54
54
|
* Rows whose `started_at IS NULL` are NOT touched: a NULL `started_at`
|
|
55
|
-
* means the
|
|
55
|
+
* means the build worker never transitioned to Active, which is a different
|
|
56
56
|
* failure mode (queue starvation) handled by a separate runbook.
|
|
57
57
|
* - `dryRun` — when true, the endpoint returns the candidate set without
|
|
58
58
|
* mutating anything. `reason` becomes optional in this mode.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Envs-Spec — operator-only desired-spec patch schemas.
|
|
3
|
+
*
|
|
4
|
+
* This surface owns the wire contract for mutating environment-level
|
|
5
|
+
* desired-spec fields that are intentionally hidden from customer-facing
|
|
6
|
+
* environment PATCH endpoints:
|
|
7
|
+
*
|
|
8
|
+
* - runtimeClassName
|
|
9
|
+
* - defaultSandboxImage
|
|
10
|
+
* - defaultSecurityContext
|
|
11
|
+
* - defaultHealthAgentMode
|
|
12
|
+
*
|
|
13
|
+
* The API route still validates the resulting merged object against the
|
|
14
|
+
* canonical core `envSpecSchema`; this package owns only the HTTP shape.
|
|
15
|
+
*/
|
|
16
|
+
import { Schema } from 'effect';
|
|
17
|
+
export declare const AdminEnvsSpecParams: Schema.Struct<{
|
|
18
|
+
envId: Schema.filter<typeof Schema.String>;
|
|
19
|
+
}>;
|
|
20
|
+
export type AdminEnvsSpecParams = typeof AdminEnvsSpecParams.Type;
|
|
21
|
+
export declare const AdminEnvsSpecHealthAgentMode: Schema.Literal<["auto", "passthrough", "disabled"]>;
|
|
22
|
+
export type AdminEnvsSpecHealthAgentMode = typeof AdminEnvsSpecHealthAgentMode.Type;
|
|
23
|
+
export declare const AdminEnvsSpecSecurityContextPatch: Schema.Struct<{
|
|
24
|
+
runAsNonRoot: Schema.optional<typeof Schema.Boolean>;
|
|
25
|
+
allowPrivilegeEscalation: Schema.optional<typeof Schema.Boolean>;
|
|
26
|
+
privileged: Schema.optional<typeof Schema.Boolean>;
|
|
27
|
+
}>;
|
|
28
|
+
export type AdminEnvsSpecSecurityContextPatch = typeof AdminEnvsSpecSecurityContextPatch.Type;
|
|
29
|
+
export declare const AdminEnvsSpecPatchInput: Schema.filter<Schema.Struct<{
|
|
30
|
+
runtimeClassName: Schema.optional<Schema.NullOr<typeof Schema.String>>;
|
|
31
|
+
defaultSandboxImage: Schema.optional<Schema.NullOr<Schema.filter<typeof Schema.String>>>;
|
|
32
|
+
defaultSecurityContext: Schema.optional<Schema.Struct<{
|
|
33
|
+
runAsNonRoot: Schema.optional<typeof Schema.Boolean>;
|
|
34
|
+
allowPrivilegeEscalation: Schema.optional<typeof Schema.Boolean>;
|
|
35
|
+
privileged: Schema.optional<typeof Schema.Boolean>;
|
|
36
|
+
}>>;
|
|
37
|
+
defaultHealthAgentMode: Schema.optional<Schema.Literal<["auto", "passthrough", "disabled"]>>;
|
|
38
|
+
reason: Schema.filter<Schema.filter<typeof Schema.String>>;
|
|
39
|
+
}>>;
|
|
40
|
+
export type AdminEnvsSpecPatchInput = typeof AdminEnvsSpecPatchInput.Type;
|
|
41
|
+
export declare const AdminEnvsSpecPatchResult: Schema.Struct<{
|
|
42
|
+
envId: Schema.filter<typeof Schema.String>;
|
|
43
|
+
runtimeClassName: Schema.NullOr<typeof Schema.String>;
|
|
44
|
+
defaultSandboxImage: Schema.NullOr<typeof Schema.String>;
|
|
45
|
+
defaultSecurityContext: Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
|
|
46
|
+
defaultHealthAgentMode: Schema.NullOr<Schema.Literal<["auto", "passthrough", "disabled"]>>;
|
|
47
|
+
}>;
|
|
48
|
+
export type AdminEnvsSpecPatchResult = typeof AdminEnvsSpecPatchResult.Type;
|
|
49
|
+
//# sourceMappingURL=admin-envs-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-envs-spec.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-envs-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAU/B,eAAO,MAAM,mBAAmB;;EAE9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAEjE,eAAO,MAAM,4BAA4B,qDAAoD,CAAA;AAC7F,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC,IAAI,CAAA;AAEnF,eAAO,MAAM,iCAAiC;;;;EAI5C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAC,IAAI,CAAA;AAwB7F,eAAO,MAAM,uBAAuB;;;;;;;;;;GAcA,CAAA;AACpC,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;EAQnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Envs-Spec — operator-only desired-spec patch schemas.
|
|
3
|
+
*
|
|
4
|
+
* This surface owns the wire contract for mutating environment-level
|
|
5
|
+
* desired-spec fields that are intentionally hidden from customer-facing
|
|
6
|
+
* environment PATCH endpoints:
|
|
7
|
+
*
|
|
8
|
+
* - runtimeClassName
|
|
9
|
+
* - defaultSandboxImage
|
|
10
|
+
* - defaultSecurityContext
|
|
11
|
+
* - defaultHealthAgentMode
|
|
12
|
+
*
|
|
13
|
+
* The API route still validates the resulting merged object against the
|
|
14
|
+
* canonical core `envSpecSchema`; this package owns only the HTTP shape.
|
|
15
|
+
*/
|
|
16
|
+
import { Schema } from 'effect';
|
|
17
|
+
const Reason = Schema.String.pipe(Schema.minLength(3), Schema.maxLength(500));
|
|
18
|
+
const EnvId = Schema.String.pipe(Schema.pattern(/^env_[0-9a-z]{20,30}$/i, {
|
|
19
|
+
message: () => 'envId must be a TypeID with prefix `env_`',
|
|
20
|
+
}));
|
|
21
|
+
export const AdminEnvsSpecParams = Schema.Struct({
|
|
22
|
+
envId: EnvId,
|
|
23
|
+
});
|
|
24
|
+
export const AdminEnvsSpecHealthAgentMode = Schema.Literal('auto', 'passthrough', 'disabled');
|
|
25
|
+
export const AdminEnvsSpecSecurityContextPatch = Schema.Struct({
|
|
26
|
+
runAsNonRoot: Schema.optional(Schema.Boolean),
|
|
27
|
+
allowPrivilegeEscalation: Schema.optional(Schema.Boolean),
|
|
28
|
+
privileged: Schema.optional(Schema.Boolean),
|
|
29
|
+
});
|
|
30
|
+
function hasSpecField(body) {
|
|
31
|
+
if (body.runtimeClassName !== undefined ||
|
|
32
|
+
body.defaultSandboxImage !== undefined ||
|
|
33
|
+
body.defaultSecurityContext !== undefined ||
|
|
34
|
+
body.defaultHealthAgentMode !== undefined) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
path: [],
|
|
39
|
+
message: 'Provide at least one of runtimeClassName, defaultSandboxImage, ' +
|
|
40
|
+
'defaultSecurityContext, defaultHealthAgentMode.',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export const AdminEnvsSpecPatchInput = Schema.Struct({
|
|
44
|
+
runtimeClassName: Schema.optional(Schema.NullOr(Schema.String)),
|
|
45
|
+
defaultSandboxImage: Schema.optional(Schema.NullOr(Schema.String.pipe(Schema.pattern(/^registry\.sylphx\.com\//, {
|
|
46
|
+
message: () => 'defaultSandboxImage must be from registry.sylphx.com',
|
|
47
|
+
})))),
|
|
48
|
+
defaultSecurityContext: Schema.optional(AdminEnvsSpecSecurityContextPatch),
|
|
49
|
+
defaultHealthAgentMode: Schema.optional(AdminEnvsSpecHealthAgentMode),
|
|
50
|
+
reason: Reason,
|
|
51
|
+
}).pipe(Schema.filter(hasSpecField));
|
|
52
|
+
export const AdminEnvsSpecPatchResult = Schema.Struct({
|
|
53
|
+
envId: EnvId,
|
|
54
|
+
runtimeClassName: Schema.NullOr(Schema.String),
|
|
55
|
+
defaultSandboxImage: Schema.NullOr(Schema.String),
|
|
56
|
+
defaultSecurityContext: Schema.NullOr(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
|
|
57
|
+
defaultHealthAgentMode: Schema.NullOr(AdminEnvsSpecHealthAgentMode),
|
|
58
|
+
});
|
|
@@ -244,14 +244,14 @@ export declare const AdminPlatformResourceBinding: Schema.Struct<{
|
|
|
244
244
|
role: typeof Schema.String;
|
|
245
245
|
resourceId: typeof Schema.String;
|
|
246
246
|
status: Schema.NullOr<typeof Schema.String>;
|
|
247
|
-
|
|
247
|
+
backendName: Schema.NullOr<typeof Schema.String>;
|
|
248
248
|
}>;
|
|
249
249
|
export type AdminPlatformResourceBinding = typeof AdminPlatformResourceBinding.Type;
|
|
250
250
|
export declare const AdminPlatformResourcesResult: Schema.Array$<Schema.Struct<{
|
|
251
251
|
role: typeof Schema.String;
|
|
252
252
|
resourceId: typeof Schema.String;
|
|
253
253
|
status: Schema.NullOr<typeof Schema.String>;
|
|
254
|
-
|
|
254
|
+
backendName: Schema.NullOr<typeof Schema.String>;
|
|
255
255
|
}>>;
|
|
256
256
|
export type AdminPlatformResourcesResult = typeof AdminPlatformResourcesResult.Type;
|
|
257
257
|
//# sourceMappingURL=admin-projects.d.ts.map
|
|
@@ -141,6 +141,6 @@ export const AdminPlatformResourceBinding = Schema.Struct({
|
|
|
141
141
|
role: Schema.String,
|
|
142
142
|
resourceId: Schema.String,
|
|
143
143
|
status: Schema.NullOr(Schema.String),
|
|
144
|
-
|
|
144
|
+
backendName: Schema.NullOr(Schema.String),
|
|
145
145
|
});
|
|
146
146
|
export const AdminPlatformResourcesResult = Schema.Array(AdminPlatformResourceBinding);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* credential type's current multiplier + exempt status.
|
|
14
14
|
* - POST /admin/rate-limits/credential-multipliers — upsert the row
|
|
15
15
|
* for one credential type. The enforcement layer picks up the
|
|
16
|
-
* change within 5 minutes (
|
|
16
|
+
* change within 5 minutes (policy cache TTL) or immediately via
|
|
17
17
|
* `invalidateAndReload()`.
|
|
18
18
|
*
|
|
19
19
|
* Auth: service token + scope `platform:ratelimits:write`. Super-admin
|
|
@@ -31,7 +31,7 @@ export declare const AdminRateLimitCredentialType: Schema.Literal<["public", "se
|
|
|
31
31
|
export type AdminRateLimitCredentialType = typeof AdminRateLimitCredentialType.Type;
|
|
32
32
|
/**
|
|
33
33
|
* Snapshot row — one per credential type. `effectiveMultiplier` is
|
|
34
|
-
* the value the limiter is currently applying (after
|
|
34
|
+
* the value the limiter is currently applying (after policy cache
|
|
35
35
|
* settles); `exempt=true` means the limiter short-circuits to
|
|
36
36
|
* always-allow (used for the SPIFFE mesh path).
|
|
37
37
|
*/
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* credential type's current multiplier + exempt status.
|
|
14
14
|
* - POST /admin/rate-limits/credential-multipliers — upsert the row
|
|
15
15
|
* for one credential type. The enforcement layer picks up the
|
|
16
|
-
* change within 5 minutes (
|
|
16
|
+
* change within 5 minutes (policy cache TTL) or immediately via
|
|
17
17
|
* `invalidateAndReload()`.
|
|
18
18
|
*
|
|
19
19
|
* Auth: service token + scope `platform:ratelimits:write`. Super-admin
|
|
@@ -30,7 +30,7 @@ import { Schema } from 'effect';
|
|
|
30
30
|
export const AdminRateLimitCredentialType = Schema.Literal('public', 'secret', 'service', 'session', 'spiffe', 'unknown');
|
|
31
31
|
/**
|
|
32
32
|
* Snapshot row — one per credential type. `effectiveMultiplier` is
|
|
33
|
-
* the value the limiter is currently applying (after
|
|
33
|
+
* the value the limiter is currently applying (after policy cache
|
|
34
34
|
* settles); `exempt=true` means the limiter short-circuits to
|
|
35
35
|
* always-allow (used for the SPIFFE mesh path).
|
|
36
36
|
*/
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Admin Secrets — operator-driven secret rotation primitives.
|
|
3
3
|
*
|
|
4
4
|
* G-5: closes the production-ready audit gap on secret rotation. The
|
|
5
|
-
* Platform holds a small set of HMAC / encryption secrets in
|
|
6
|
-
*
|
|
5
|
+
* Platform holds a small set of HMAC / encryption secrets in operator-managed
|
|
6
|
+
* secret slots (BREAK_GLASS_SECRET, PLATFORM_ENCRYPTION_KEY, …). Pre-G-5
|
|
7
7
|
* rotation was a manual two-person rule documented in
|
|
8
8
|
* `docs/runbooks/break-glass.md` §4 — not auditable, not metered, no
|
|
9
9
|
* automated reminder when a secret aged past 90 days.
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
* - List rotatable secrets + their last-rotation age (`--dry-run`)
|
|
13
13
|
* - Initiate a rotation event for compliance (audit row + metric tick)
|
|
14
14
|
*
|
|
15
|
-
* The actual
|
|
16
|
-
*
|
|
15
|
+
* The actual secret value rotation is delegated to the runbook's existing
|
|
16
|
+
* two-person procedure; this endpoint is the AUDIT trail and
|
|
17
17
|
* the OBSERVABILITY anchor for `sylphx_secret_age_days`. We deliberately
|
|
18
18
|
* do NOT mint the new value server-side — minting would require holding
|
|
19
|
-
* the
|
|
20
|
-
* rotation is hedging against. Operators
|
|
21
|
-
*
|
|
19
|
+
* the secret-store root key in process memory, which is the very threat the
|
|
20
|
+
* rotation is hedging against. Operators update the configured secret
|
|
21
|
+
* target; the endpoint records that it happened.
|
|
22
22
|
*
|
|
23
23
|
* Scope (`platform:secrets:rotate`) is service-token only; super-admin
|
|
24
24
|
* sessions are explicitly NOT accepted — a rotation MUST be a programmatic
|
|
@@ -54,7 +54,7 @@ export type AdminRotateSecretInput = typeof AdminRotateSecretInput.Type;
|
|
|
54
54
|
* Per-secret rotation status — one row per known secret type.
|
|
55
55
|
*
|
|
56
56
|
* `lastRotatedAt` is null for a secret that has never been rotated since
|
|
57
|
-
* ledger ingest (
|
|
57
|
+
* ledger ingest (fresh installations, freshly seeded `secret_rotation_events`).
|
|
58
58
|
* `ageDays` is `now() - lastRotatedAt` in days, or null when never-rotated;
|
|
59
59
|
* the alert rule fires when `ageDays > 90`.
|
|
60
60
|
*/
|
|
@@ -66,8 +66,8 @@ export declare const AdminSecretStatus: Schema.Struct<{
|
|
|
66
66
|
cadenceDays: typeof Schema.Number;
|
|
67
67
|
/** True iff `ageDays > cadenceDays` (or never-rotated). */
|
|
68
68
|
overdue: typeof Schema.Boolean;
|
|
69
|
-
/**
|
|
70
|
-
|
|
69
|
+
/** Operator-facing target the runbook updates. */
|
|
70
|
+
rotationTarget: typeof Schema.String;
|
|
71
71
|
}>;
|
|
72
72
|
export type AdminSecretStatus = typeof AdminSecretStatus.Type;
|
|
73
73
|
export declare const AdminRotateSecretResult: Schema.Struct<{
|
|
@@ -82,8 +82,8 @@ export declare const AdminRotateSecretResult: Schema.Struct<{
|
|
|
82
82
|
cadenceDays: typeof Schema.Number;
|
|
83
83
|
/** True iff `ageDays > cadenceDays` (or never-rotated). */
|
|
84
84
|
overdue: typeof Schema.Boolean;
|
|
85
|
-
/**
|
|
86
|
-
|
|
85
|
+
/** Operator-facing target the runbook updates. */
|
|
86
|
+
rotationTarget: typeof Schema.String;
|
|
87
87
|
}>;
|
|
88
88
|
/** ID of the audit_logs row written on a non-dry-run call. */
|
|
89
89
|
auditLogId: Schema.NullOr<typeof Schema.String>;
|
|
@@ -105,8 +105,8 @@ export declare const AdminListSecretsResult: Schema.Struct<{
|
|
|
105
105
|
cadenceDays: typeof Schema.Number;
|
|
106
106
|
/** True iff `ageDays > cadenceDays` (or never-rotated). */
|
|
107
107
|
overdue: typeof Schema.Boolean;
|
|
108
|
-
/**
|
|
109
|
-
|
|
108
|
+
/** Operator-facing target the runbook updates. */
|
|
109
|
+
rotationTarget: typeof Schema.String;
|
|
110
110
|
}>>;
|
|
111
111
|
}>;
|
|
112
112
|
export type AdminListSecretsResult = typeof AdminListSecretsResult.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-secrets.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;GAIG;AACH,eAAO,MAAM,eAAe,kEAQ3B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,sBAAsB;IAClC,8BAA8B;;IAE9B;;;;;OAKG;;IAEH;;;;OAIG;;EAEF,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;IAI7B,2DAA2D;;IAE3D,2DAA2D;;IAE3D,
|
|
1
|
+
{"version":3,"file":"admin-secrets.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;GAIG;AACH,eAAO,MAAM,eAAe,kEAQ3B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,sBAAsB;IAClC,8BAA8B;;IAE9B;;;;;OAKG;;IAEH;;;;OAIG;;EAEF,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;IAI7B,2DAA2D;;IAE3D,2DAA2D;;IAE3D,kDAAkD;;EAEjD,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,uBAAuB;IACnC,qEAAqE;;IAErE,4DAA4D;;;;;QAZ5D,2DAA2D;;QAE3D,2DAA2D;;QAE3D,kDAAkD;;;IAUlD,8DAA8D;;IAE9D,6CAA6C;;EAE5C,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AAEzE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;QA1BlC,2DAA2D;;QAE3D,2DAA2D;;QAE3D,kDAAkD;;;EAwBjD,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Admin Secrets — operator-driven secret rotation primitives.
|
|
3
3
|
*
|
|
4
4
|
* G-5: closes the production-ready audit gap on secret rotation. The
|
|
5
|
-
* Platform holds a small set of HMAC / encryption secrets in
|
|
6
|
-
*
|
|
5
|
+
* Platform holds a small set of HMAC / encryption secrets in operator-managed
|
|
6
|
+
* secret slots (BREAK_GLASS_SECRET, PLATFORM_ENCRYPTION_KEY, …). Pre-G-5
|
|
7
7
|
* rotation was a manual two-person rule documented in
|
|
8
8
|
* `docs/runbooks/break-glass.md` §4 — not auditable, not metered, no
|
|
9
9
|
* automated reminder when a secret aged past 90 days.
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
* - List rotatable secrets + their last-rotation age (`--dry-run`)
|
|
13
13
|
* - Initiate a rotation event for compliance (audit row + metric tick)
|
|
14
14
|
*
|
|
15
|
-
* The actual
|
|
16
|
-
*
|
|
15
|
+
* The actual secret value rotation is delegated to the runbook's existing
|
|
16
|
+
* two-person procedure; this endpoint is the AUDIT trail and
|
|
17
17
|
* the OBSERVABILITY anchor for `sylphx_secret_age_days`. We deliberately
|
|
18
18
|
* do NOT mint the new value server-side — minting would require holding
|
|
19
|
-
* the
|
|
20
|
-
* rotation is hedging against. Operators
|
|
21
|
-
*
|
|
19
|
+
* the secret-store root key in process memory, which is the very threat the
|
|
20
|
+
* rotation is hedging against. Operators update the configured secret
|
|
21
|
+
* target; the endpoint records that it happened.
|
|
22
22
|
*
|
|
23
23
|
* Scope (`platform:secrets:rotate`) is service-token only; super-admin
|
|
24
24
|
* sessions are explicitly NOT accepted — a rotation MUST be a programmatic
|
|
@@ -59,7 +59,7 @@ export const AdminRotateSecretInput = Schema.Struct({
|
|
|
59
59
|
* Per-secret rotation status — one row per known secret type.
|
|
60
60
|
*
|
|
61
61
|
* `lastRotatedAt` is null for a secret that has never been rotated since
|
|
62
|
-
* ledger ingest (
|
|
62
|
+
* ledger ingest (fresh installations, freshly seeded `secret_rotation_events`).
|
|
63
63
|
* `ageDays` is `now() - lastRotatedAt` in days, or null when never-rotated;
|
|
64
64
|
* the alert rule fires when `ageDays > 90`.
|
|
65
65
|
*/
|
|
@@ -71,8 +71,8 @@ export const AdminSecretStatus = Schema.Struct({
|
|
|
71
71
|
cadenceDays: Schema.Number,
|
|
72
72
|
/** True iff `ageDays > cadenceDays` (or never-rotated). */
|
|
73
73
|
overdue: Schema.Boolean,
|
|
74
|
-
/**
|
|
75
|
-
|
|
74
|
+
/** Operator-facing target the runbook updates. */
|
|
75
|
+
rotationTarget: Schema.String,
|
|
76
76
|
});
|
|
77
77
|
export const AdminRotateSecretResult = Schema.Struct({
|
|
78
78
|
/** True iff a real rotation event was recorded; false on dry-run. */
|