@intentic/engine 1.222.0 → 1.223.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/README.md +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/readiness.d.ts +5 -0
- package/dist/readiness.d.ts.map +1 -1
- package/dist/readiness.js +14 -8
- package/dist/readiness.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ The stateless **reconcile engine**. It walks a `DesiredStateGraph` in dependency
|
|
|
14
14
|
|
|
15
15
|
- [src/reconcile/apply.ts](src/reconcile/apply.ts) / [src/reconcile/plan.ts](src/reconcile/plan.ts) / [src/reconcile/reconcile-loop.ts](src/reconcile/reconcile-loop.ts) — the converge/dry-run/loop logic.
|
|
16
16
|
- [src/provider.ts](src/provider.ts) / [src/types.ts](src/types.ts) — the SPI and engine types (`Provider`, `DiffResult`, `EngineConfig`, `Step`, `Orphan`).
|
|
17
|
-
- [src/readiness.ts](src/readiness.ts) — `httpProbe` / `waitReady` (readiness gates).
|
|
17
|
+
- [src/readiness.ts](src/readiness.ts) — `httpProbe` / `waitReady` (readiness gates), and `pollUntil`, the one waiting loop every "is it up yet" in the engine and the providers is written on.
|
|
18
18
|
- [src/resolve-inputs.ts](src/resolve-inputs.ts) — resolve refs/secrets into concrete provider inputs.
|
|
19
19
|
- [src/reconcile/orphans.ts](src/reconcile/orphans.ts) / [src/reconcile/prune.ts](src/reconcile/prune.ts) — drift cleanup; [src/providers](src/providers) — `createFakeProviders` (in-memory SPI for tests).
|
|
20
20
|
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type { DiffResult, ListedResource, Observed, Provider, ProviderContext, P
|
|
|
2
2
|
export type { FakeWorld } from "./providers/fake.js";
|
|
3
3
|
export { createFakeProviders } from "./providers/fake.js";
|
|
4
4
|
export type { ReadinessProbe } from "./readiness.js";
|
|
5
|
-
export { httpProbe, parseDuration, ReadinessTimeoutError, waitReady } from "./readiness.js";
|
|
5
|
+
export { httpProbe, parseDuration, pollUntil, ReadinessTimeoutError, waitReady } from "./readiness.js";
|
|
6
6
|
export { apply } from "./reconcile/apply.js";
|
|
7
7
|
export { applyMoves, rewriteGraphForMoves } from "./reconcile/moves.js";
|
|
8
8
|
export { collectOrphans } from "./reconcile/orphans.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5H,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5H,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EACR,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,EACN,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,IAAI,GACP,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createFakeProviders } from "./providers/fake.js";
|
|
2
|
-
export { httpProbe, parseDuration, ReadinessTimeoutError, waitReady } from "./readiness.js";
|
|
2
|
+
export { httpProbe, parseDuration, pollUntil, ReadinessTimeoutError, waitReady } from "./readiness.js";
|
|
3
3
|
export { apply } from "./reconcile/apply.js";
|
|
4
4
|
export { applyMoves, rewriteGraphForMoves } from "./reconcile/moves.js";
|
|
5
5
|
export { collectOrphans } from "./reconcile/orphans.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/readiness.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export declare class ReadinessTimeoutError extends Error {
|
|
|
7
7
|
readonly timeoutMs: number;
|
|
8
8
|
constructor(id: string, url: string, timeoutMs: number);
|
|
9
9
|
}
|
|
10
|
+
export declare const pollUntil: (ready: () => Promise<boolean>, options: {
|
|
11
|
+
readonly timeoutMs: number;
|
|
12
|
+
readonly intervalMs: number;
|
|
13
|
+
readonly onRetry?: () => void;
|
|
14
|
+
}) => Promise<boolean>;
|
|
10
15
|
export declare const waitReady: (id: string, url: string, options: {
|
|
11
16
|
readonly status?: number;
|
|
12
17
|
readonly timeout?: string;
|
package/dist/readiness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAGvF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MAM5C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAYvB,CAAC;AAIF,qBAAa,qBAAsB,SAAQ,KAAK;IAExC,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAH9B,YACa,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EAI7B;CACJ;
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAGvF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MAM5C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAYvB,CAAC;AAIF,qBAAa,qBAAsB,SAAQ,KAAK;IAExC,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAH9B,YACa,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EAI7B;CACJ;AAYD,eAAO,MAAM,SAAS,UACX,MAAM,OAAO,CAAC,OAAO,CAAC,WACpB;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,KACpG,OAAO,CAAC,OAAO,CAYjB,CAAC;AAIF,eAAO,MAAM,SAAS,OACd,MAAM,OACL,MAAM,WACF;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,SACzD,cAAc,0BAEtB,OAAO,CAAC,IAAI,CAMd,CAAC"}
|
package/dist/readiness.js
CHANGED
|
@@ -27,18 +27,24 @@ export class ReadinessTimeoutError extends Error {
|
|
|
27
27
|
this.name = "ReadinessTimeoutError";
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
export const
|
|
31
|
-
const
|
|
32
|
-
const limit = options.timeout !== undefined ? parseDuration(options.timeout) : 60000;
|
|
33
|
-
const deadline = Date.now() + limit;
|
|
30
|
+
export const pollUntil = async (ready, options) => {
|
|
31
|
+
const deadline = Date.now() + options.timeoutMs;
|
|
34
32
|
for (;;) {
|
|
35
|
-
if (await
|
|
36
|
-
return;
|
|
33
|
+
if (await ready()) {
|
|
34
|
+
return true;
|
|
37
35
|
}
|
|
38
36
|
if (Date.now() >= deadline) {
|
|
39
|
-
|
|
37
|
+
return false;
|
|
40
38
|
}
|
|
41
|
-
|
|
39
|
+
options.onRetry?.();
|
|
40
|
+
await sleep(options.intervalMs);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
export const waitReady = async (id, url, options, probe, intervalMs = 1000) => {
|
|
44
|
+
const expected = options.status ?? 200;
|
|
45
|
+
const limit = options.timeout !== undefined ? parseDuration(options.timeout) : 60000;
|
|
46
|
+
if (!(await pollUntil(() => probe(url, expected), { timeoutMs: limit, intervalMs }))) {
|
|
47
|
+
throw new ReadinessTimeoutError(id, url, limit);
|
|
42
48
|
}
|
|
43
49
|
};
|
|
44
50
|
//# sourceMappingURL=readiness.js.map
|
package/dist/readiness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IAClD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,2BAA2B,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAmB,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE;IAMnE,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1F,OAAO,QAAQ,CAAC,MAAM,KAAK,cAAc,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAE/B,EAAE;IACF,GAAG;IACH,SAAS;IAHtB,YACa,EAAU,EACV,GAAW,EACX,SAAiB;QAE1B,KAAK,CAAC,mCAAmC,SAAS,UAAU,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC;kBAJ7E,EAAE;mBACF,GAAG;yBACH,SAAS;QAGlB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACxC,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IAClD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,2BAA2B,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAmB,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE;IAMnE,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1F,OAAO,QAAQ,CAAC,MAAM,KAAK,cAAc,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAE/B,EAAE;IACF,GAAG;IACH,SAAS;IAHtB,YACa,EAAU,EACV,GAAW,EACX,SAAiB;QAE1B,KAAK,CAAC,mCAAmC,SAAS,UAAU,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC;kBAJ7E,EAAE;mBACF,GAAG;yBACH,SAAS;QAGlB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACxC,CAAC;CACJ;AAYD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC1B,KAA6B,EAC7B,OAAmG,EACnF,EAAE;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAChD,SAAS,CAAC;QACN,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC1B,EAAU,EACV,GAAW,EACX,OAAgE,EAChE,KAAqB,EACrB,UAAU,GAAG,IAAI,EACJ,EAAE;IACf,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;AACL,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/engine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.223.0",
|
|
4
4
|
"description": "Stateless reconcile engine: plan/apply, the Provider SPI, and the reconcile loop.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -31,15 +31,15 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"tslib": "2.8.1",
|
|
34
|
-
"@intentic/resources": "1.
|
|
35
|
-
"@intentic/graph": "1.
|
|
34
|
+
"@intentic/resources": "1.223.0",
|
|
35
|
+
"@intentic/graph": "1.223.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "24.13.2",
|
|
39
39
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
40
40
|
"vitest": "4.1.10",
|
|
41
|
-
"@intentic/
|
|
42
|
-
"@intentic/
|
|
41
|
+
"@intentic/tsconfig": "0.0.0",
|
|
42
|
+
"@intentic/sdk": "1.223.0"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "tsgo",
|