@sixb/core 0.1.13 → 0.1.15
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/dist/actions/index.js +22 -22
- package/dist/agents/index.js +34 -34
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/auth/errors.d.ts +12 -0
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +7 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/strategy.d.ts +2 -0
- package/dist/auth/strategy.d.ts.map +1 -1
- package/dist/auth/strategy.js +4 -2
- package/dist/auth/strategy.js.map +1 -1
- package/dist/auth/types.d.ts +8 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +2 -2
- package/dist/bootstrap/index.js +37 -37
- package/dist/{chunk-693f3zn8.js → chunk-1jvq82rp.js} +3 -3
- package/dist/{chunk-0321g649.js → chunk-2jntasmh.js} +13 -2
- package/dist/{chunk-0321g649.js.map → chunk-2jntasmh.js.map} +3 -3
- package/dist/{chunk-cvrbhvtr.js → chunk-2tz5vnvz.js} +28 -28
- package/dist/{chunk-cvrbhvtr.js.map → chunk-2tz5vnvz.js.map} +1 -1
- package/dist/{chunk-898y24dd.js → chunk-3c90jvfj.js} +2 -2
- package/dist/{chunk-vn3yh259.js → chunk-4gmng3vf.js} +1 -1
- package/dist/{chunk-91wthfwe.js → chunk-4jph1t3v.js} +7 -7
- package/dist/{chunk-znw0zvy4.js → chunk-4wn7bxxa.js} +25 -7
- package/dist/chunk-4wn7bxxa.js.map +12 -0
- package/dist/{chunk-3qpcrcj8.js → chunk-6aawea28.js} +2 -4
- package/dist/chunk-6aawea28.js.map +10 -0
- package/dist/{chunk-rzkr70gr.js → chunk-6fsr7y93.js} +5 -1
- package/dist/{chunk-rzkr70gr.js.map → chunk-6fsr7y93.js.map} +3 -3
- package/dist/{chunk-y487ywrv.js → chunk-6q7c68yx.js} +4 -4
- package/dist/{chunk-ypj2wqtj.js → chunk-70jmg2zx.js} +2 -2
- package/dist/{chunk-s24qbp32.js → chunk-7jc21943.js} +3 -3
- package/dist/{chunk-rzcjp5m2.js → chunk-8fjmqjyx.js} +1 -1
- package/dist/{chunk-m8zkvep1.js → chunk-8w27xf9e.js} +1 -1
- package/dist/{chunk-z9h698s8.js → chunk-a4g5yjm0.js} +1 -1
- package/dist/{chunk-gmt22nxx.js → chunk-adbve9zt.js} +1 -1
- package/dist/{chunk-mf6hwpzh.js → chunk-dqkd3kdj.js} +41 -23
- package/dist/{chunk-mf6hwpzh.js.map → chunk-dqkd3kdj.js.map} +3 -3
- package/dist/{chunk-gbcrz0gr.js → chunk-ex8s8wsk.js} +6 -6
- package/dist/{chunk-4tnrzqqh.js → chunk-fj1dvp37.js} +1 -1
- package/dist/{chunk-gc226ten.js → chunk-fjw417jf.js} +127 -69
- package/dist/{chunk-gc226ten.js.map → chunk-fjw417jf.js.map} +4 -4
- package/dist/{chunk-ht4a7mjg.js → chunk-g4rbm4a6.js} +42 -8
- package/dist/{chunk-ht4a7mjg.js.map → chunk-g4rbm4a6.js.map} +3 -3
- package/dist/{chunk-qma80ych.js → chunk-hn2r7z41.js} +3 -2
- package/dist/chunk-hn2r7z41.js.map +11 -0
- package/dist/{chunk-bdhfn0ww.js → chunk-kkqwzy6h.js} +1 -1
- package/dist/{chunk-bep5rrdq.js → chunk-mmac1mp6.js} +2 -2
- package/dist/{chunk-w9bp61e7.js → chunk-n5t4mq6z.js} +5 -5
- package/dist/{chunk-n33e8dz8.js → chunk-p0nbkys4.js} +1 -1
- package/dist/{chunk-04h4t2b5.js → chunk-py2dw8cw.js} +3 -3
- package/dist/{chunk-jhyc777j.js → chunk-q3grgzp1.js} +2 -2
- package/dist/{chunk-9pfw47qx.js → chunk-qne45xqq.js} +53 -48
- package/dist/{chunk-9pfw47qx.js.map → chunk-qne45xqq.js.map} +7 -7
- package/dist/{chunk-cbn96bve.js → chunk-r5sc1d2b.js} +2 -2
- package/dist/{chunk-y6vnvayj.js → chunk-vjcd8d27.js} +1 -1
- package/dist/{chunk-jmwy25mf.js → chunk-wd34wnsy.js} +6 -6
- package/dist/{chunk-63fp9x3q.js → chunk-wem5vqjw.js} +7 -7
- package/dist/{chunk-darm7eeg.js → chunk-xr7y35yj.js} +3 -3
- package/dist/{chunk-a69fkrtr.js → chunk-y0zmae99.js} +5 -5
- package/dist/{chunk-xgptywp0.js → chunk-y2aq6ag9.js} +1 -1
- package/dist/{chunk-2hbhn1ff.js → chunk-yfppyaty.js} +1 -1
- package/dist/{chunk-rqtdtm43.js → chunk-z708gemf.js} +129 -70
- package/dist/{chunk-rqtdtm43.js.map → chunk-z708gemf.js.map} +5 -5
- package/dist/deploy/define.d.ts +4 -0
- package/dist/deploy/define.d.ts.map +1 -0
- package/dist/deploy/index.d.ts +3 -0
- package/dist/deploy/index.d.ts.map +1 -0
- package/dist/deploy/index.js +10 -0
- package/dist/deploy/index.js.map +10 -0
- package/dist/deploy/internal.d.ts +3 -0
- package/dist/deploy/internal.d.ts.map +1 -0
- package/dist/deploy/internal.js +244 -0
- package/dist/deploy/internal.js.map +11 -0
- package/dist/deploy/services.d.ts +8 -0
- package/dist/deploy/services.d.ts.map +1 -0
- package/dist/deploy/types.d.ts +309 -0
- package/dist/deploy/types.d.ts.map +1 -0
- package/dist/deploy/validation.d.ts +7 -0
- package/dist/deploy/validation.d.ts.map +1 -0
- package/dist/error-reporting/internal.js +3 -3
- package/dist/errors/catalog.d.ts +4 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/index.js +3 -3
- package/dist/execution/agent.js +33 -33
- package/dist/execution/primitive.js +29 -29
- package/dist/execution/request.js +31 -31
- package/dist/execution/request.js.map +1 -1
- package/dist/index.js +49 -49
- package/dist/index.js.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +2 -0
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/maintenance/types.d.ts +8 -2
- package/dist/maintenance/types.d.ts.map +1 -1
- package/dist/materialization/dataset-watermark.d.ts +6 -1
- package/dist/materialization/dataset-watermark.d.ts.map +1 -1
- package/dist/materialization/index.js +1 -1
- package/dist/materialization/model.d.ts +6 -0
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.js +18 -18
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/finish-run.d.ts.map +1 -1
- package/dist/materializer/projections/replace.d.ts.map +1 -1
- package/dist/materializer/projections/source-materialization.d.ts +6 -2
- package/dist/materializer/projections/source-materialization.d.ts.map +1 -1
- package/dist/models/execution/index.js +14 -14
- package/dist/objects/index.js +21 -21
- package/dist/objects/query/index.js +15 -15
- package/dist/pipelines/index.js +19 -19
- package/dist/projections/internal.js +16 -16
- package/dist/projections/types.d.ts +1 -1
- package/dist/projections/types.d.ts.map +1 -1
- package/dist/queues/in-memory.d.ts +1 -1
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/runtime/internal.js +19 -19
- package/dist/shares/internal.js +14 -14
- package/dist/shares/internal.js.map +1 -1
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/auth/errors.d.ts +1 -1
- package/dist/storage/auth/errors.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts +2 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +15 -7
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +5 -5
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +29 -29
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +6 -3
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +16 -3
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +8 -4
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/ontology/sources.d.ts +36 -8
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/projection-runs/in-memory.d.ts +3 -1
- package/dist/storage/projection-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/projection-runs/index.d.ts +1 -1
- package/dist/storage/projection-runs/index.d.ts.map +1 -1
- package/dist/storage/projection-runs/lifecycle.d.ts +12 -0
- package/dist/storage/projection-runs/lifecycle.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +10 -4
- package/dist/storage/projection-runs/provider.js.map +1 -1
- package/dist/storage/projection-runs/types.d.ts +32 -1
- package/dist/storage/projection-runs/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +5 -5
- package/dist/syncs/index.js +20 -20
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.js +381 -171
- package/dist/testing/index.js.map +5 -5
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/projection-run-storage-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +15 -15
- package/dist/webhooks/internal.js.map +1 -1
- package/dist/workers/index.js +1 -1
- package/dist/workflows/index.js +34 -34
- package/package.json +13 -1
- package/src/auth/errors.ts +23 -0
- package/src/auth/index.ts +1 -1
- package/src/auth/runtime.ts +56 -22
- package/src/auth/strategy.ts +2 -0
- package/src/auth/types.ts +8 -0
- package/src/deploy/define.ts +6 -0
- package/src/deploy/index.ts +41 -0
- package/src/deploy/internal.ts +7 -0
- package/src/deploy/services.ts +51 -0
- package/src/deploy/types.ts +338 -0
- package/src/deploy/validation.ts +261 -0
- package/src/errors/catalog.ts +4 -0
- package/src/maintenance/ontology-maintenance.ts +32 -2
- package/src/maintenance/types.ts +8 -2
- package/src/materialization/dataset-watermark.ts +6 -4
- package/src/materialization/model.ts +7 -0
- package/src/materializer/README.md +26 -6
- package/src/materializer/projections/finish-run.ts +129 -26
- package/src/materializer/projections/replace.ts +67 -49
- package/src/materializer/projections/source-materialization.ts +11 -6
- package/src/projections/types.ts +1 -0
- package/src/storage/auth/errors.ts +0 -1
- package/src/storage/auth/in-memory/auth-storage.ts +44 -65
- package/src/storage/auth/types.ts +15 -7
- package/src/storage/index.ts +6 -1
- package/src/storage/ontology/in-memory/sources.ts +119 -55
- package/src/storage/ontology/index.ts +4 -1
- package/src/storage/ontology/provider.ts +64 -7
- package/src/storage/ontology/sources.ts +42 -8
- package/src/storage/projection-runs/in-memory.ts +41 -2
- package/src/storage/projection-runs/index.ts +2 -0
- package/src/storage/projection-runs/lifecycle.ts +61 -4
- package/src/storage/projection-runs/types.ts +41 -1
- package/src/testing/auth-storage-contract.ts +104 -130
- package/src/testing/ontology-storage-contract.ts +141 -15
- package/src/testing/projection-run-storage-contract.ts +174 -1
- package/dist/chunk-3qpcrcj8.js.map +0 -10
- package/dist/chunk-qma80ych.js.map +0 -11
- package/dist/chunk-znw0zvy4.js.map +0 -12
- /package/dist/{chunk-693f3zn8.js.map → chunk-1jvq82rp.js.map} +0 -0
- /package/dist/{chunk-898y24dd.js.map → chunk-3c90jvfj.js.map} +0 -0
- /package/dist/{chunk-vn3yh259.js.map → chunk-4gmng3vf.js.map} +0 -0
- /package/dist/{chunk-91wthfwe.js.map → chunk-4jph1t3v.js.map} +0 -0
- /package/dist/{chunk-y487ywrv.js.map → chunk-6q7c68yx.js.map} +0 -0
- /package/dist/{chunk-ypj2wqtj.js.map → chunk-70jmg2zx.js.map} +0 -0
- /package/dist/{chunk-s24qbp32.js.map → chunk-7jc21943.js.map} +0 -0
- /package/dist/{chunk-rzcjp5m2.js.map → chunk-8fjmqjyx.js.map} +0 -0
- /package/dist/{chunk-m8zkvep1.js.map → chunk-8w27xf9e.js.map} +0 -0
- /package/dist/{chunk-z9h698s8.js.map → chunk-a4g5yjm0.js.map} +0 -0
- /package/dist/{chunk-gmt22nxx.js.map → chunk-adbve9zt.js.map} +0 -0
- /package/dist/{chunk-gbcrz0gr.js.map → chunk-ex8s8wsk.js.map} +0 -0
- /package/dist/{chunk-4tnrzqqh.js.map → chunk-fj1dvp37.js.map} +0 -0
- /package/dist/{chunk-bdhfn0ww.js.map → chunk-kkqwzy6h.js.map} +0 -0
- /package/dist/{chunk-bep5rrdq.js.map → chunk-mmac1mp6.js.map} +0 -0
- /package/dist/{chunk-w9bp61e7.js.map → chunk-n5t4mq6z.js.map} +0 -0
- /package/dist/{chunk-n33e8dz8.js.map → chunk-p0nbkys4.js.map} +0 -0
- /package/dist/{chunk-04h4t2b5.js.map → chunk-py2dw8cw.js.map} +0 -0
- /package/dist/{chunk-jhyc777j.js.map → chunk-q3grgzp1.js.map} +0 -0
- /package/dist/{chunk-cbn96bve.js.map → chunk-r5sc1d2b.js.map} +0 -0
- /package/dist/{chunk-y6vnvayj.js.map → chunk-vjcd8d27.js.map} +0 -0
- /package/dist/{chunk-jmwy25mf.js.map → chunk-wd34wnsy.js.map} +0 -0
- /package/dist/{chunk-63fp9x3q.js.map → chunk-wem5vqjw.js.map} +0 -0
- /package/dist/{chunk-darm7eeg.js.map → chunk-xr7y35yj.js.map} +0 -0
- /package/dist/{chunk-a69fkrtr.js.map → chunk-y0zmae99.js.map} +0 -0
- /package/dist/{chunk-xgptywp0.js.map → chunk-y2aq6ag9.js.map} +0 -0
- /package/dist/{chunk-2hbhn1ff.js.map → chunk-yfppyaty.js.map} +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DeployConfig } from "./types";
|
|
2
|
+
/** Declares a deployment in `sixb.deploy.ts`. `sixb deploy` validates it when it loads the file. */
|
|
3
|
+
export declare function defineDeploy<const TConfig extends DeployConfig>(config: TConfig): TConfig;
|
|
4
|
+
//# sourceMappingURL=define.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/deploy/define.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,KAAK,CAAC,OAAO,SAAS,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAEzF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { defineDeploy } from "./define";
|
|
2
|
+
export type { DeployAccess, DeployAccessKey, DeployCheck, DeployCheckContext, DeployCi, DeployCiCredential, DeployCommand, DeployConfig, DeployConfigurableWorkerType, DeployContext, DeployControlAction, DeployEnv, DeployEvent, DeployHttpServiceConfig, DeployHttpServiceName, DeployListenAddress, DeployLogsOptions, DeployOperationContext, DeployProcessDefinition, DeployProcessOptions, DeployProcessStatus, DeployRecord, DeployRelease, DeployReleaseHttp, DeployReleaseProcess, DeployReleaseService, DeployScalableProcessOptions, DeployServiceName, DeployServicesConfig, DeploySetupContext, DeploySingletonServiceConfig, DeploySingletonServiceName, DeploySource, DeploySourceArchive, DeployStatus, DeployTarget, DeployWorkersConfig, DeployWorkerType, } from "./types";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,EAC1B,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/deploy/define.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type { DeployConfig } from \"./types\"\n\n/** Declares a deployment in `sixb.deploy.ts`. `sixb deploy` validates it when it loads the file. */\nexport function defineDeploy<const TConfig extends DeployConfig>(config: TConfig): TConfig {\n return config\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;AAGO,SAAS,YAAgD,CAAC,QAA0B;AAAA,EACzF,OAAO;AAAA;",
|
|
8
|
+
"debugId": "988A26A9EC64ED7164756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/deploy/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/deploy/services.ts
|
|
3
|
+
var SERVICES = {
|
|
4
|
+
api: "http",
|
|
5
|
+
atlas: "http",
|
|
6
|
+
app: "http",
|
|
7
|
+
orchestrator: "singleton",
|
|
8
|
+
scheduler: "singleton",
|
|
9
|
+
rules: "singleton",
|
|
10
|
+
workers: "workers"
|
|
11
|
+
};
|
|
12
|
+
var WORKER_TYPES = {
|
|
13
|
+
sync: true,
|
|
14
|
+
action: false,
|
|
15
|
+
agent: true,
|
|
16
|
+
pipeline: true,
|
|
17
|
+
projection: true,
|
|
18
|
+
workflow: true
|
|
19
|
+
};
|
|
20
|
+
var DEPLOY_SERVICES = Object.keys(SERVICES);
|
|
21
|
+
var DEPLOY_WORKER_TYPES = Object.keys(WORKER_TYPES);
|
|
22
|
+
var DEPLOY_CONFIGURABLE_WORKER_TYPES = DEPLOY_WORKER_TYPES.filter((workerType) => WORKER_TYPES[workerType]);
|
|
23
|
+
function isDeployHttpService(service) {
|
|
24
|
+
return SERVICES[service] === "http";
|
|
25
|
+
}
|
|
26
|
+
function isDeploySingletonService(service) {
|
|
27
|
+
return SERVICES[service] === "singleton";
|
|
28
|
+
}
|
|
29
|
+
// src/deploy/validation.ts
|
|
30
|
+
var NAME_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
|
|
31
|
+
var DOMAIN_LABEL = "[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?";
|
|
32
|
+
var DOMAIN_PATTERN = new RegExp(`^${DOMAIN_LABEL}(?:\\.${DOMAIN_LABEL})*$`, "i");
|
|
33
|
+
var ENV_NAME_PATTERN = /^[A-Z_][A-Z0-9_]*$/;
|
|
34
|
+
var MEMORY_PATTERN = /^\d+(?:\.\d+)?\s*(?:b|k|kb|m|mb|g|gb)?$/i;
|
|
35
|
+
var MAX_TIMER_MS = 2147483647;
|
|
36
|
+
var PROCESS_OPTIONS = ["killTimeoutMs", "restartDelayMs", "maxMemory"];
|
|
37
|
+
var SCALABLE_PROCESS_OPTIONS = [...PROCESS_OPTIONS, "instances"];
|
|
38
|
+
function validateDeployConfig(value) {
|
|
39
|
+
const config = record(value, "The deploy config");
|
|
40
|
+
knownKeys(config, ["name", "domain", "target", "env", "services", "processes"], "");
|
|
41
|
+
name(config.name, "name");
|
|
42
|
+
if (config.domain !== undefined)
|
|
43
|
+
domain(config.domain, "domain");
|
|
44
|
+
target(config.target);
|
|
45
|
+
if (config.env !== undefined)
|
|
46
|
+
env(config.env, "env");
|
|
47
|
+
if (config.services !== undefined)
|
|
48
|
+
services(config.services);
|
|
49
|
+
if (config.processes !== undefined)
|
|
50
|
+
processes(config.processes);
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
function target(value) {
|
|
54
|
+
const hint = "Use a deploy target, such as `new SshTarget({ host })` from @sixb/deploy-ssh.";
|
|
55
|
+
if (typeof value !== "object" || value === null) {
|
|
56
|
+
throw new Error(`[SixbDeploy] target is required. ${hint}`);
|
|
57
|
+
}
|
|
58
|
+
const candidate = value;
|
|
59
|
+
const methods = ["listenAddress", "deploy", "status", "logs", "control", "check"];
|
|
60
|
+
if (typeof candidate.kind !== "string" || typeof candidate.location !== "string" || methods.some((method) => typeof candidate[method] !== "function")) {
|
|
61
|
+
throw new Error(`[SixbDeploy] target is not a deploy target. ${hint}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function services(value) {
|
|
65
|
+
const config = record(value, "services");
|
|
66
|
+
knownKeys(config, DEPLOY_SERVICES, "services");
|
|
67
|
+
for (const service of DEPLOY_SERVICES) {
|
|
68
|
+
const override = config[service];
|
|
69
|
+
if (override === undefined || typeof override === "boolean")
|
|
70
|
+
continue;
|
|
71
|
+
const path = `services.${service}`;
|
|
72
|
+
const options = record(override, path);
|
|
73
|
+
if (isDeployHttpService(service)) {
|
|
74
|
+
knownKeys(options, ["domain", "env", "process"], path, {
|
|
75
|
+
port: "Ports belong to the target, such as `new SshTarget({ ports: { api: 3012 } })`."
|
|
76
|
+
});
|
|
77
|
+
if (options.domain !== undefined)
|
|
78
|
+
domain(options.domain, `${path}.domain`);
|
|
79
|
+
if (options.process !== undefined) {
|
|
80
|
+
processOptions(options.process, `${path}.process`, PROCESS_OPTIONS, {
|
|
81
|
+
instances: "HTTP services run one process each."
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
} else if (isDeploySingletonService(service)) {
|
|
85
|
+
knownKeys(options, ["env", "process"], path);
|
|
86
|
+
if (options.process !== undefined) {
|
|
87
|
+
processOptions(options.process, `${path}.process`, PROCESS_OPTIONS, {
|
|
88
|
+
instances: `The ${service} runs exactly one process: a second would duplicate its work.`
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
knownKeys(options, ["types", "agentTurnTimeout", "concurrency", "env", "process"], path);
|
|
93
|
+
if (options.types !== undefined)
|
|
94
|
+
workerTypes(options.types, `${path}.types`);
|
|
95
|
+
if (options.agentTurnTimeout !== undefined) {
|
|
96
|
+
string(options.agentTurnTimeout, `${path}.agentTurnTimeout`);
|
|
97
|
+
}
|
|
98
|
+
if (options.concurrency !== undefined) {
|
|
99
|
+
workerConcurrency(options.concurrency, `${path}.concurrency`);
|
|
100
|
+
}
|
|
101
|
+
if (options.process !== undefined) {
|
|
102
|
+
processOptions(options.process, `${path}.process`, SCALABLE_PROCESS_OPTIONS);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (options.env !== undefined)
|
|
106
|
+
env(options.env, `${path}.env`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function processes(value) {
|
|
110
|
+
const config = record(value, "processes");
|
|
111
|
+
for (const [processName, definition] of Object.entries(config)) {
|
|
112
|
+
const path = `processes.${processName}`;
|
|
113
|
+
name(processName, path);
|
|
114
|
+
if (DEPLOY_SERVICES.includes(processName)) {
|
|
115
|
+
throw new Error(`[SixbDeploy] ${path} uses the name of a Sixb service. Rename the process.`);
|
|
116
|
+
}
|
|
117
|
+
const options = record(definition, path);
|
|
118
|
+
knownKeys(options, ["entrypoint", "args", "env", "process"], path);
|
|
119
|
+
entrypoint(options.entrypoint, `${path}.entrypoint`);
|
|
120
|
+
if (options.args !== undefined) {
|
|
121
|
+
if (!Array.isArray(options.args) || options.args.some((arg) => typeof arg !== "string")) {
|
|
122
|
+
throw new Error(`[SixbDeploy] ${path}.args must be an array of strings.`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (options.env !== undefined)
|
|
126
|
+
env(options.env, `${path}.env`);
|
|
127
|
+
if (options.process !== undefined) {
|
|
128
|
+
processOptions(options.process, `${path}.process`, SCALABLE_PROCESS_OPTIONS);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function workerTypes(value, path) {
|
|
133
|
+
if (value === "all")
|
|
134
|
+
return;
|
|
135
|
+
if (!Array.isArray(value) || value.length === 0) {
|
|
136
|
+
throw new Error(`[SixbDeploy] ${path} must be "all" or a non-empty list of worker types.`);
|
|
137
|
+
}
|
|
138
|
+
const seen = new Set;
|
|
139
|
+
for (const workerType of value) {
|
|
140
|
+
if (!DEPLOY_WORKER_TYPES.includes(workerType)) {
|
|
141
|
+
throw new Error(`[SixbDeploy] ${path} has unknown worker type ${JSON.stringify(workerType)}. ` + `Available: ${DEPLOY_WORKER_TYPES.join(", ")}.`);
|
|
142
|
+
}
|
|
143
|
+
if (seen.has(workerType)) {
|
|
144
|
+
throw new Error(`[SixbDeploy] ${path} lists ${workerType} more than once.`);
|
|
145
|
+
}
|
|
146
|
+
seen.add(workerType);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function workerConcurrency(value, path) {
|
|
150
|
+
const config = record(value, path);
|
|
151
|
+
for (const [workerType, concurrency] of Object.entries(config)) {
|
|
152
|
+
if (workerType === "action") {
|
|
153
|
+
throw new Error(`[SixbDeploy] ${path}.action cannot be set: action jobs run one at a time.`);
|
|
154
|
+
}
|
|
155
|
+
if (!DEPLOY_CONFIGURABLE_WORKER_TYPES.includes(workerType)) {
|
|
156
|
+
throw new Error(`[SixbDeploy] ${path} has unknown worker type "${workerType}". ` + `Available: ${DEPLOY_CONFIGURABLE_WORKER_TYPES.join(", ")}.`);
|
|
157
|
+
}
|
|
158
|
+
positiveInteger(concurrency, `${path}.${workerType}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function processOptions(value, path, allowed, hints = {}) {
|
|
162
|
+
const options = record(value, path);
|
|
163
|
+
knownKeys(options, allowed, path, hints);
|
|
164
|
+
if (options.instances !== undefined)
|
|
165
|
+
positiveInteger(options.instances, `${path}.instances`);
|
|
166
|
+
if (options.killTimeoutMs !== undefined) {
|
|
167
|
+
positiveInteger(options.killTimeoutMs, `${path}.killTimeoutMs`, MAX_TIMER_MS);
|
|
168
|
+
}
|
|
169
|
+
if (options.restartDelayMs !== undefined) {
|
|
170
|
+
positiveInteger(options.restartDelayMs, `${path}.restartDelayMs`, MAX_TIMER_MS);
|
|
171
|
+
}
|
|
172
|
+
if (options.maxMemory !== undefined) {
|
|
173
|
+
if (typeof options.maxMemory !== "string" || !MEMORY_PATTERN.test(options.maxMemory.trim())) {
|
|
174
|
+
throw new Error(`[SixbDeploy] ${path}.maxMemory must be a size such as "512M" or "2G".`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function entrypoint(value, path) {
|
|
179
|
+
string(value, path);
|
|
180
|
+
const segments = value.split(/[\\/]/);
|
|
181
|
+
if (value.startsWith("/") || segments.includes("..")) {
|
|
182
|
+
throw new Error(`[SixbDeploy] ${path} must be a path inside the project, relative to its directory.`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function env(value, path) {
|
|
186
|
+
const variables = record(value, path);
|
|
187
|
+
for (const [key, variable] of Object.entries(variables)) {
|
|
188
|
+
if (!ENV_NAME_PATTERN.test(key)) {
|
|
189
|
+
throw new Error(`[SixbDeploy] ${path}.${key} is not a valid environment variable name. ` + "Use uppercase letters, digits, and underscores.");
|
|
190
|
+
}
|
|
191
|
+
if (typeof variable !== "string") {
|
|
192
|
+
throw new Error(`[SixbDeploy] ${path}.${key} must be a string.`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
function name(value, path) {
|
|
197
|
+
string(value, path);
|
|
198
|
+
if (!NAME_PATTERN.test(value) || value.length > 63) {
|
|
199
|
+
throw new Error(`[SixbDeploy] ${path} must use lowercase letters, numbers, and hyphens, ` + "start and end with a letter or number, and be at most 63 characters.");
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function domain(value, path) {
|
|
203
|
+
string(value, path);
|
|
204
|
+
if (value.includes("://") || value.includes("/")) {
|
|
205
|
+
throw new Error(`[SixbDeploy] ${path} must be a hostname such as app.example.com, not a URL.`);
|
|
206
|
+
}
|
|
207
|
+
if (value.length > 253 || !DOMAIN_PATTERN.test(value)) {
|
|
208
|
+
throw new Error(`[SixbDeploy] ${path} must be a valid hostname such as app.example.com.`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function positiveInteger(value, path, maximum = Number.MAX_SAFE_INTEGER) {
|
|
212
|
+
if (!Number.isInteger(value) || value < 1 || value > maximum) {
|
|
213
|
+
throw new Error(`[SixbDeploy] ${path} must be a positive integer.`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function string(value, path) {
|
|
217
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
218
|
+
throw new Error(`[SixbDeploy] ${path} must be a non-empty string.`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function record(value, path) {
|
|
222
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
223
|
+
throw new Error(`[SixbDeploy] ${path} must be an object.`);
|
|
224
|
+
}
|
|
225
|
+
return value;
|
|
226
|
+
}
|
|
227
|
+
function knownKeys(value, allowed, path, hints = {}) {
|
|
228
|
+
for (const key of Object.keys(value)) {
|
|
229
|
+
if (allowed.includes(key))
|
|
230
|
+
continue;
|
|
231
|
+
const setting = path ? `${path}.${key}` : key;
|
|
232
|
+
const hint = hints[key] ?? `Available: ${allowed.join(", ")}.`;
|
|
233
|
+
throw new Error(`[SixbDeploy] Unknown deploy setting '${setting}'. ${hint}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
export {
|
|
237
|
+
DEPLOY_SERVICES,
|
|
238
|
+
DEPLOY_WORKER_TYPES,
|
|
239
|
+
isDeployHttpService,
|
|
240
|
+
isDeploySingletonService,
|
|
241
|
+
validateDeployConfig
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
//# debugId=0E2C47DFD73C115364756E2164756E21
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/deploy/services.ts", "../src/deploy/validation.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type {\n DeployConfigurableWorkerType,\n DeployHttpServiceName,\n DeployServiceName,\n DeploySingletonServiceName,\n DeployWorkerType,\n} from \"./types\"\n\n// Records rather than arrays so that each list is total over its union: a service or worker type\n// added to the types does not compile until it is listed here, and validation accepts it.\n\nconst SERVICES = {\n api: \"http\",\n atlas: \"http\",\n app: \"http\",\n orchestrator: \"singleton\",\n scheduler: \"singleton\",\n rules: \"singleton\",\n workers: \"workers\",\n} as const satisfies Record<DeployServiceName, \"http\" | \"singleton\" | \"workers\">\n\n/** Whether each worker type's concurrency can be configured. */\nconst WORKER_TYPES: {\n readonly [Type in DeployWorkerType]: Type extends DeployConfigurableWorkerType ? true : false\n} = {\n sync: true,\n action: false,\n agent: true,\n pipeline: true,\n projection: true,\n workflow: true,\n}\n\n/** Every service, in the order a deployment lists them. */\nexport const DEPLOY_SERVICES = Object.keys(SERVICES) as DeployServiceName[]\n\nexport const DEPLOY_WORKER_TYPES = Object.keys(WORKER_TYPES) as DeployWorkerType[]\n\nexport const DEPLOY_CONFIGURABLE_WORKER_TYPES = DEPLOY_WORKER_TYPES.filter(\n (workerType): workerType is DeployConfigurableWorkerType => WORKER_TYPES[workerType]\n)\n\nexport function isDeployHttpService(service: DeployServiceName): service is DeployHttpServiceName {\n return SERVICES[service] === \"http\"\n}\n\nexport function isDeploySingletonService(\n service: DeployServiceName\n): service is DeploySingletonServiceName {\n return SERVICES[service] === \"singleton\"\n}\n",
|
|
6
|
+
"import {\n DEPLOY_CONFIGURABLE_WORKER_TYPES,\n DEPLOY_SERVICES,\n DEPLOY_WORKER_TYPES,\n isDeployHttpService,\n isDeploySingletonService,\n} from \"./services\"\nimport type { DeployConfig } from \"./types\"\n\ntype UnknownRecord = Record<string, unknown>\n\nconst NAME_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/\nconst DOMAIN_LABEL = \"[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\"\nconst DOMAIN_PATTERN = new RegExp(`^${DOMAIN_LABEL}(?:\\\\.${DOMAIN_LABEL})*$`, \"i\")\nconst ENV_NAME_PATTERN = /^[A-Z_][A-Z0-9_]*$/\nconst MEMORY_PATTERN = /^\\d+(?:\\.\\d+)?\\s*(?:b|k|kb|m|mb|g|gb)?$/i\n/** Longest delay a timer honors; anything larger fires immediately. */\nconst MAX_TIMER_MS = 2_147_483_647\n\nconst PROCESS_OPTIONS = [\"killTimeoutMs\", \"restartDelayMs\", \"maxMemory\"] as const\nconst SCALABLE_PROCESS_OPTIONS = [...PROCESS_OPTIONS, \"instances\"] as const\n\n/**\n * Checks a loaded `sixb.deploy.ts` default export and returns it typed. Validates shape and\n * values only; `sixb deploy` resolves defaults and checks what depends on the target.\n */\nexport function validateDeployConfig(value: unknown): DeployConfig {\n const config = record(value, \"The deploy config\")\n knownKeys(config, [\"name\", \"domain\", \"target\", \"env\", \"services\", \"processes\"], \"\")\n\n name(config.name, \"name\")\n if (config.domain !== undefined) domain(config.domain, \"domain\")\n target(config.target)\n if (config.env !== undefined) env(config.env, \"env\")\n if (config.services !== undefined) services(config.services)\n if (config.processes !== undefined) processes(config.processes)\n\n return value as DeployConfig\n}\n\nfunction target(value: unknown): void {\n const hint = \"Use a deploy target, such as `new SshTarget({ host })` from @sixb/deploy-ssh.\"\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`[SixbDeploy] target is required. ${hint}`)\n }\n const candidate = value as UnknownRecord\n const methods = [\"listenAddress\", \"deploy\", \"status\", \"logs\", \"control\", \"check\"]\n if (\n typeof candidate.kind !== \"string\" ||\n typeof candidate.location !== \"string\" ||\n methods.some((method) => typeof candidate[method] !== \"function\")\n ) {\n throw new Error(`[SixbDeploy] target is not a deploy target. ${hint}`)\n }\n}\n\nfunction services(value: unknown): void {\n const config = record(value, \"services\")\n knownKeys(config, DEPLOY_SERVICES, \"services\")\n\n for (const service of DEPLOY_SERVICES) {\n const override = config[service]\n if (override === undefined || typeof override === \"boolean\") continue\n const path = `services.${service}`\n const options = record(override, path)\n\n if (isDeployHttpService(service)) {\n knownKeys(options, [\"domain\", \"env\", \"process\"], path, {\n port: \"Ports belong to the target, such as `new SshTarget({ ports: { api: 3012 } })`.\",\n })\n if (options.domain !== undefined) domain(options.domain, `${path}.domain`)\n if (options.process !== undefined) {\n processOptions(options.process, `${path}.process`, PROCESS_OPTIONS, {\n instances: \"HTTP services run one process each.\",\n })\n }\n } else if (isDeploySingletonService(service)) {\n knownKeys(options, [\"env\", \"process\"], path)\n if (options.process !== undefined) {\n processOptions(options.process, `${path}.process`, PROCESS_OPTIONS, {\n instances: `The ${service} runs exactly one process: a second would duplicate its work.`,\n })\n }\n } else {\n knownKeys(options, [\"types\", \"agentTurnTimeout\", \"concurrency\", \"env\", \"process\"], path)\n if (options.types !== undefined) workerTypes(options.types, `${path}.types`)\n if (options.agentTurnTimeout !== undefined) {\n string(options.agentTurnTimeout, `${path}.agentTurnTimeout`)\n }\n if (options.concurrency !== undefined) {\n workerConcurrency(options.concurrency, `${path}.concurrency`)\n }\n if (options.process !== undefined) {\n processOptions(options.process, `${path}.process`, SCALABLE_PROCESS_OPTIONS)\n }\n }\n\n if (options.env !== undefined) env(options.env, `${path}.env`)\n }\n}\n\nfunction processes(value: unknown): void {\n const config = record(value, \"processes\")\n\n for (const [processName, definition] of Object.entries(config)) {\n const path = `processes.${processName}`\n name(processName, path)\n if ((DEPLOY_SERVICES as readonly string[]).includes(processName)) {\n throw new Error(`[SixbDeploy] ${path} uses the name of a Sixb service. Rename the process.`)\n }\n\n const options = record(definition, path)\n knownKeys(options, [\"entrypoint\", \"args\", \"env\", \"process\"], path)\n entrypoint(options.entrypoint, `${path}.entrypoint`)\n if (options.args !== undefined) {\n if (!Array.isArray(options.args) || options.args.some((arg) => typeof arg !== \"string\")) {\n throw new Error(`[SixbDeploy] ${path}.args must be an array of strings.`)\n }\n }\n if (options.env !== undefined) env(options.env, `${path}.env`)\n if (options.process !== undefined) {\n processOptions(options.process, `${path}.process`, SCALABLE_PROCESS_OPTIONS)\n }\n }\n}\n\nfunction workerTypes(value: unknown, path: string): void {\n if (value === \"all\") return\n if (!Array.isArray(value) || value.length === 0) {\n throw new Error(`[SixbDeploy] ${path} must be \"all\" or a non-empty list of worker types.`)\n }\n const seen = new Set<string>()\n for (const workerType of value) {\n if (!(DEPLOY_WORKER_TYPES as readonly unknown[]).includes(workerType)) {\n throw new Error(\n `[SixbDeploy] ${path} has unknown worker type ${JSON.stringify(workerType)}. ` +\n `Available: ${DEPLOY_WORKER_TYPES.join(\", \")}.`\n )\n }\n if (seen.has(workerType)) {\n throw new Error(`[SixbDeploy] ${path} lists ${workerType} more than once.`)\n }\n seen.add(workerType)\n }\n}\n\nfunction workerConcurrency(value: unknown, path: string): void {\n const config = record(value, path)\n for (const [workerType, concurrency] of Object.entries(config)) {\n if (workerType === \"action\") {\n throw new Error(`[SixbDeploy] ${path}.action cannot be set: action jobs run one at a time.`)\n }\n if (!(DEPLOY_CONFIGURABLE_WORKER_TYPES as readonly string[]).includes(workerType)) {\n throw new Error(\n `[SixbDeploy] ${path} has unknown worker type \"${workerType}\". ` +\n `Available: ${DEPLOY_CONFIGURABLE_WORKER_TYPES.join(\", \")}.`\n )\n }\n positiveInteger(concurrency, `${path}.${workerType}`)\n }\n}\n\nfunction processOptions(\n value: unknown,\n path: string,\n allowed: readonly string[],\n hints: Readonly<Record<string, string>> = {}\n): void {\n const options = record(value, path)\n knownKeys(options, allowed, path, hints)\n if (options.instances !== undefined) positiveInteger(options.instances, `${path}.instances`)\n if (options.killTimeoutMs !== undefined) {\n positiveInteger(options.killTimeoutMs, `${path}.killTimeoutMs`, MAX_TIMER_MS)\n }\n if (options.restartDelayMs !== undefined) {\n positiveInteger(options.restartDelayMs, `${path}.restartDelayMs`, MAX_TIMER_MS)\n }\n if (options.maxMemory !== undefined) {\n if (typeof options.maxMemory !== \"string\" || !MEMORY_PATTERN.test(options.maxMemory.trim())) {\n throw new Error(`[SixbDeploy] ${path}.maxMemory must be a size such as \"512M\" or \"2G\".`)\n }\n }\n}\n\nfunction entrypoint(value: unknown, path: string): void {\n string(value, path)\n const segments = value.split(/[\\\\/]/)\n if (value.startsWith(\"/\") || segments.includes(\"..\")) {\n throw new Error(\n `[SixbDeploy] ${path} must be a path inside the project, relative to its directory.`\n )\n }\n}\n\nfunction env(value: unknown, path: string): void {\n const variables = record(value, path)\n for (const [key, variable] of Object.entries(variables)) {\n if (!ENV_NAME_PATTERN.test(key)) {\n throw new Error(\n `[SixbDeploy] ${path}.${key} is not a valid environment variable name. ` +\n \"Use uppercase letters, digits, and underscores.\"\n )\n }\n if (typeof variable !== \"string\") {\n throw new Error(`[SixbDeploy] ${path}.${key} must be a string.`)\n }\n }\n}\n\nfunction name(value: unknown, path: string): void {\n string(value, path)\n if (!NAME_PATTERN.test(value) || value.length > 63) {\n throw new Error(\n `[SixbDeploy] ${path} must use lowercase letters, numbers, and hyphens, ` +\n \"start and end with a letter or number, and be at most 63 characters.\"\n )\n }\n}\n\nfunction domain(value: unknown, path: string): void {\n string(value, path)\n if (value.includes(\"://\") || value.includes(\"/\")) {\n throw new Error(`[SixbDeploy] ${path} must be a hostname such as app.example.com, not a URL.`)\n }\n if (value.length > 253 || !DOMAIN_PATTERN.test(value)) {\n throw new Error(`[SixbDeploy] ${path} must be a valid hostname such as app.example.com.`)\n }\n}\n\nfunction positiveInteger(value: unknown, path: string, maximum = Number.MAX_SAFE_INTEGER): void {\n if (!Number.isInteger(value) || (value as number) < 1 || (value as number) > maximum) {\n throw new Error(`[SixbDeploy] ${path} must be a positive integer.`)\n }\n}\n\nfunction string(value: unknown, path: string): asserts value is string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new Error(`[SixbDeploy] ${path} must be a non-empty string.`)\n }\n}\n\nfunction record(value: unknown, path: string): UnknownRecord {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new Error(`[SixbDeploy] ${path} must be an object.`)\n }\n return value as UnknownRecord\n}\n\nfunction knownKeys(\n value: UnknownRecord,\n allowed: readonly string[],\n path: string,\n hints: Readonly<Record<string, string>> = {}\n): void {\n for (const key of Object.keys(value)) {\n if (allowed.includes(key)) continue\n const setting = path ? `${path}.${key}` : key\n const hint = hints[key] ?? `Available: ${allowed.join(\", \")}.`\n throw new Error(`[SixbDeploy] Unknown deploy setting '${setting}'. ${hint}`)\n }\n}\n"
|
|
7
|
+
],
|
|
8
|
+
"mappings": ";;AAWA,IAAM,WAAW;AAAA,EACf,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AAAA,EACL,cAAc;AAAA,EACd,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AACX;AAGA,IAAM,eAEF;AAAA,EACF,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AACZ;AAGO,IAAM,kBAAkB,OAAO,KAAK,QAAQ;AAE5C,IAAM,sBAAsB,OAAO,KAAK,YAAY;AAEpD,IAAM,mCAAmC,oBAAoB,OAClE,CAAC,eAA2D,aAAa,WAC3E;AAEO,SAAS,mBAAmB,CAAC,SAA8D;AAAA,EAChG,OAAO,SAAS,aAAa;AAAA;AAGxB,SAAS,wBAAwB,CACtC,SACuC;AAAA,EACvC,OAAO,SAAS,aAAa;AAAA;;ACtC/B,IAAM,eAAe;AACrB,IAAM,eAAe;AACrB,IAAM,iBAAiB,IAAI,OAAO,IAAI,qBAAqB,mBAAmB,GAAG;AACjF,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AAEvB,IAAM,eAAe;AAErB,IAAM,kBAAkB,CAAC,iBAAiB,kBAAkB,WAAW;AACvE,IAAM,2BAA2B,CAAC,GAAG,iBAAiB,WAAW;AAM1D,SAAS,oBAAoB,CAAC,OAA8B;AAAA,EACjE,MAAM,SAAS,OAAO,OAAO,mBAAmB;AAAA,EAChD,UAAU,QAAQ,CAAC,QAAQ,UAAU,UAAU,OAAO,YAAY,WAAW,GAAG,EAAE;AAAA,EAElF,KAAK,OAAO,MAAM,MAAM;AAAA,EACxB,IAAI,OAAO,WAAW;AAAA,IAAW,OAAO,OAAO,QAAQ,QAAQ;AAAA,EAC/D,OAAO,OAAO,MAAM;AAAA,EACpB,IAAI,OAAO,QAAQ;AAAA,IAAW,IAAI,OAAO,KAAK,KAAK;AAAA,EACnD,IAAI,OAAO,aAAa;AAAA,IAAW,SAAS,OAAO,QAAQ;AAAA,EAC3D,IAAI,OAAO,cAAc;AAAA,IAAW,UAAU,OAAO,SAAS;AAAA,EAE9D,OAAO;AAAA;AAGT,SAAS,MAAM,CAAC,OAAsB;AAAA,EACpC,MAAM,OAAO;AAAA,EACb,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,IAC/C,MAAM,IAAI,MAAM,oCAAoC,MAAM;AAAA,EAC5D;AAAA,EACA,MAAM,YAAY;AAAA,EAClB,MAAM,UAAU,CAAC,iBAAiB,UAAU,UAAU,QAAQ,WAAW,OAAO;AAAA,EAChF,IACE,OAAO,UAAU,SAAS,YAC1B,OAAO,UAAU,aAAa,YAC9B,QAAQ,KAAK,CAAC,WAAW,OAAO,UAAU,YAAY,UAAU,GAChE;AAAA,IACA,MAAM,IAAI,MAAM,+CAA+C,MAAM;AAAA,EACvE;AAAA;AAGF,SAAS,QAAQ,CAAC,OAAsB;AAAA,EACtC,MAAM,SAAS,OAAO,OAAO,UAAU;AAAA,EACvC,UAAU,QAAQ,iBAAiB,UAAU;AAAA,EAE7C,WAAW,WAAW,iBAAiB;AAAA,IACrC,MAAM,WAAW,OAAO;AAAA,IACxB,IAAI,aAAa,aAAa,OAAO,aAAa;AAAA,MAAW;AAAA,IAC7D,MAAM,OAAO,YAAY;AAAA,IACzB,MAAM,UAAU,OAAO,UAAU,IAAI;AAAA,IAErC,IAAI,oBAAoB,OAAO,GAAG;AAAA,MAChC,UAAU,SAAS,CAAC,UAAU,OAAO,SAAS,GAAG,MAAM;AAAA,QACrD,MAAM;AAAA,MACR,CAAC;AAAA,MACD,IAAI,QAAQ,WAAW;AAAA,QAAW,OAAO,QAAQ,QAAQ,GAAG,aAAa;AAAA,MACzE,IAAI,QAAQ,YAAY,WAAW;AAAA,QACjC,eAAe,QAAQ,SAAS,GAAG,gBAAgB,iBAAiB;AAAA,UAClE,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF,EAAO,SAAI,yBAAyB,OAAO,GAAG;AAAA,MAC5C,UAAU,SAAS,CAAC,OAAO,SAAS,GAAG,IAAI;AAAA,MAC3C,IAAI,QAAQ,YAAY,WAAW;AAAA,QACjC,eAAe,QAAQ,SAAS,GAAG,gBAAgB,iBAAiB;AAAA,UAClE,WAAW,OAAO;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF,EAAO;AAAA,MACL,UAAU,SAAS,CAAC,SAAS,oBAAoB,eAAe,OAAO,SAAS,GAAG,IAAI;AAAA,MACvF,IAAI,QAAQ,UAAU;AAAA,QAAW,YAAY,QAAQ,OAAO,GAAG,YAAY;AAAA,MAC3E,IAAI,QAAQ,qBAAqB,WAAW;AAAA,QAC1C,OAAO,QAAQ,kBAAkB,GAAG,uBAAuB;AAAA,MAC7D;AAAA,MACA,IAAI,QAAQ,gBAAgB,WAAW;AAAA,QACrC,kBAAkB,QAAQ,aAAa,GAAG,kBAAkB;AAAA,MAC9D;AAAA,MACA,IAAI,QAAQ,YAAY,WAAW;AAAA,QACjC,eAAe,QAAQ,SAAS,GAAG,gBAAgB,wBAAwB;AAAA,MAC7E;AAAA;AAAA,IAGF,IAAI,QAAQ,QAAQ;AAAA,MAAW,IAAI,QAAQ,KAAK,GAAG,UAAU;AAAA,EAC/D;AAAA;AAGF,SAAS,SAAS,CAAC,OAAsB;AAAA,EACvC,MAAM,SAAS,OAAO,OAAO,WAAW;AAAA,EAExC,YAAY,aAAa,eAAe,OAAO,QAAQ,MAAM,GAAG;AAAA,IAC9D,MAAM,OAAO,aAAa;AAAA,IAC1B,KAAK,aAAa,IAAI;AAAA,IACtB,IAAK,gBAAsC,SAAS,WAAW,GAAG;AAAA,MAChE,MAAM,IAAI,MAAM,gBAAgB,2DAA2D;AAAA,IAC7F;AAAA,IAEA,MAAM,UAAU,OAAO,YAAY,IAAI;AAAA,IACvC,UAAU,SAAS,CAAC,cAAc,QAAQ,OAAO,SAAS,GAAG,IAAI;AAAA,IACjE,WAAW,QAAQ,YAAY,GAAG,iBAAiB;AAAA,IACnD,IAAI,QAAQ,SAAS,WAAW;AAAA,MAC9B,IAAI,CAAC,MAAM,QAAQ,QAAQ,IAAI,KAAK,QAAQ,KAAK,KAAK,CAAC,QAAQ,OAAO,QAAQ,QAAQ,GAAG;AAAA,QACvF,MAAM,IAAI,MAAM,gBAAgB,wCAAwC;AAAA,MAC1E;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,QAAQ;AAAA,MAAW,IAAI,QAAQ,KAAK,GAAG,UAAU;AAAA,IAC7D,IAAI,QAAQ,YAAY,WAAW;AAAA,MACjC,eAAe,QAAQ,SAAS,GAAG,gBAAgB,wBAAwB;AAAA,IAC7E;AAAA,EACF;AAAA;AAGF,SAAS,WAAW,CAAC,OAAgB,MAAoB;AAAA,EACvD,IAAI,UAAU;AAAA,IAAO;AAAA,EACrB,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAAG;AAAA,IAC/C,MAAM,IAAI,MAAM,gBAAgB,yDAAyD;AAAA,EAC3F;AAAA,EACA,MAAM,OAAO,IAAI;AAAA,EACjB,WAAW,cAAc,OAAO;AAAA,IAC9B,IAAI,CAAE,oBAA2C,SAAS,UAAU,GAAG;AAAA,MACrE,MAAM,IAAI,MACR,gBAAgB,gCAAgC,KAAK,UAAU,UAAU,QACvE,cAAc,oBAAoB,KAAK,IAAI,IAC/C;AAAA,IACF;AAAA,IACA,IAAI,KAAK,IAAI,UAAU,GAAG;AAAA,MACxB,MAAM,IAAI,MAAM,gBAAgB,cAAc,4BAA4B;AAAA,IAC5E;AAAA,IACA,KAAK,IAAI,UAAU;AAAA,EACrB;AAAA;AAGF,SAAS,iBAAiB,CAAC,OAAgB,MAAoB;AAAA,EAC7D,MAAM,SAAS,OAAO,OAAO,IAAI;AAAA,EACjC,YAAY,YAAY,gBAAgB,OAAO,QAAQ,MAAM,GAAG;AAAA,IAC9D,IAAI,eAAe,UAAU;AAAA,MAC3B,MAAM,IAAI,MAAM,gBAAgB,2DAA2D;AAAA,IAC7F;AAAA,IACA,IAAI,CAAE,iCAAuD,SAAS,UAAU,GAAG;AAAA,MACjF,MAAM,IAAI,MACR,gBAAgB,iCAAiC,kBAC/C,cAAc,iCAAiC,KAAK,IAAI,IAC5D;AAAA,IACF;AAAA,IACA,gBAAgB,aAAa,GAAG,QAAQ,YAAY;AAAA,EACtD;AAAA;AAGF,SAAS,cAAc,CACrB,OACA,MACA,SACA,QAA0C,CAAC,GACrC;AAAA,EACN,MAAM,UAAU,OAAO,OAAO,IAAI;AAAA,EAClC,UAAU,SAAS,SAAS,MAAM,KAAK;AAAA,EACvC,IAAI,QAAQ,cAAc;AAAA,IAAW,gBAAgB,QAAQ,WAAW,GAAG,gBAAgB;AAAA,EAC3F,IAAI,QAAQ,kBAAkB,WAAW;AAAA,IACvC,gBAAgB,QAAQ,eAAe,GAAG,sBAAsB,YAAY;AAAA,EAC9E;AAAA,EACA,IAAI,QAAQ,mBAAmB,WAAW;AAAA,IACxC,gBAAgB,QAAQ,gBAAgB,GAAG,uBAAuB,YAAY;AAAA,EAChF;AAAA,EACA,IAAI,QAAQ,cAAc,WAAW;AAAA,IACnC,IAAI,OAAO,QAAQ,cAAc,YAAY,CAAC,eAAe,KAAK,QAAQ,UAAU,KAAK,CAAC,GAAG;AAAA,MAC3F,MAAM,IAAI,MAAM,gBAAgB,uDAAuD;AAAA,IACzF;AAAA,EACF;AAAA;AAGF,SAAS,UAAU,CAAC,OAAgB,MAAoB;AAAA,EACtD,OAAO,OAAO,IAAI;AAAA,EAClB,MAAM,WAAW,MAAM,MAAM,OAAO;AAAA,EACpC,IAAI,MAAM,WAAW,GAAG,KAAK,SAAS,SAAS,IAAI,GAAG;AAAA,IACpD,MAAM,IAAI,MACR,gBAAgB,oEAClB;AAAA,EACF;AAAA;AAGF,SAAS,GAAG,CAAC,OAAgB,MAAoB;AAAA,EAC/C,MAAM,YAAY,OAAO,OAAO,IAAI;AAAA,EACpC,YAAY,KAAK,aAAa,OAAO,QAAQ,SAAS,GAAG;AAAA,IACvD,IAAI,CAAC,iBAAiB,KAAK,GAAG,GAAG;AAAA,MAC/B,MAAM,IAAI,MACR,gBAAgB,QAAQ,mDACtB,iDACJ;AAAA,IACF;AAAA,IACA,IAAI,OAAO,aAAa,UAAU;AAAA,MAChC,MAAM,IAAI,MAAM,gBAAgB,QAAQ,uBAAuB;AAAA,IACjE;AAAA,EACF;AAAA;AAGF,SAAS,IAAI,CAAC,OAAgB,MAAoB;AAAA,EAChD,OAAO,OAAO,IAAI;AAAA,EAClB,IAAI,CAAC,aAAa,KAAK,KAAK,KAAK,MAAM,SAAS,IAAI;AAAA,IAClD,MAAM,IAAI,MACR,gBAAgB,4DACd,sEACJ;AAAA,EACF;AAAA;AAGF,SAAS,MAAM,CAAC,OAAgB,MAAoB;AAAA,EAClD,OAAO,OAAO,IAAI;AAAA,EAClB,IAAI,MAAM,SAAS,KAAK,KAAK,MAAM,SAAS,GAAG,GAAG;AAAA,IAChD,MAAM,IAAI,MAAM,gBAAgB,6DAA6D;AAAA,EAC/F;AAAA,EACA,IAAI,MAAM,SAAS,OAAO,CAAC,eAAe,KAAK,KAAK,GAAG;AAAA,IACrD,MAAM,IAAI,MAAM,gBAAgB,wDAAwD;AAAA,EAC1F;AAAA;AAGF,SAAS,eAAe,CAAC,OAAgB,MAAc,UAAU,OAAO,kBAAwB;AAAA,EAC9F,IAAI,CAAC,OAAO,UAAU,KAAK,KAAM,QAAmB,KAAM,QAAmB,SAAS;AAAA,IACpF,MAAM,IAAI,MAAM,gBAAgB,kCAAkC;AAAA,EACpE;AAAA;AAGF,SAAS,MAAM,CAAC,OAAgB,MAAuC;AAAA,EACrE,IAAI,OAAO,UAAU,YAAY,MAAM,KAAK,MAAM,IAAI;AAAA,IACpD,MAAM,IAAI,MAAM,gBAAgB,kCAAkC;AAAA,EACpE;AAAA;AAGF,SAAS,MAAM,CAAC,OAAgB,MAA6B;AAAA,EAC3D,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAAG;AAAA,IACvE,MAAM,IAAI,MAAM,gBAAgB,yBAAyB;AAAA,EAC3D;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,SAAS,CAChB,OACA,SACA,MACA,QAA0C,CAAC,GACrC;AAAA,EACN,WAAW,OAAO,OAAO,KAAK,KAAK,GAAG;AAAA,IACpC,IAAI,QAAQ,SAAS,GAAG;AAAA,MAAG;AAAA,IAC3B,MAAM,UAAU,OAAO,GAAG,QAAQ,QAAQ;AAAA,IAC1C,MAAM,OAAO,MAAM,QAAQ,cAAc,QAAQ,KAAK,IAAI;AAAA,IAC1D,MAAM,IAAI,MAAM,wCAAwC,aAAa,MAAM;AAAA,EAC7E;AAAA;",
|
|
9
|
+
"debugId": "0E2C47DFD73C115364756E2164756E21",
|
|
10
|
+
"names": []
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DeployConfigurableWorkerType, DeployHttpServiceName, DeployServiceName, DeploySingletonServiceName, DeployWorkerType } from "./types";
|
|
2
|
+
/** Every service, in the order a deployment lists them. */
|
|
3
|
+
export declare const DEPLOY_SERVICES: DeployServiceName[];
|
|
4
|
+
export declare const DEPLOY_WORKER_TYPES: DeployWorkerType[];
|
|
5
|
+
export declare const DEPLOY_CONFIGURABLE_WORKER_TYPES: DeployConfigurableWorkerType[];
|
|
6
|
+
export declare function isDeployHttpService(service: DeployServiceName): service is DeployHttpServiceName;
|
|
7
|
+
export declare function isDeploySingletonService(service: DeployServiceName): service is DeploySingletonServiceName;
|
|
8
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/deploy/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,SAAS,CAAA;AA2BhB,2DAA2D;AAC3D,eAAO,MAAM,eAAe,EAA4B,iBAAiB,EAAE,CAAA;AAE3E,eAAO,MAAM,mBAAmB,EAAgC,gBAAgB,EAAE,CAAA;AAElF,eAAO,MAAM,gCAAgC,gCAE5C,CAAA;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,IAAI,qBAAqB,CAEhG;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,GACzB,OAAO,IAAI,0BAA0B,CAEvC"}
|