@arki/dot 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +86 -86
  2. package/dist/cli/discover.js +2 -2
  3. package/dist/cli/discover.js.map +1 -1
  4. package/dist/cli/error-codes.d.ts +8 -0
  5. package/dist/cli/error-codes.d.ts.map +1 -1
  6. package/dist/cli/error-codes.js +12 -0
  7. package/dist/cli/error-codes.js.map +1 -1
  8. package/dist/cli/index.d.ts +11 -1
  9. package/dist/cli/index.d.ts.map +1 -1
  10. package/dist/cli/index.js +66 -11
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/new.d.ts +1 -1
  13. package/dist/cli/new.js +1 -1
  14. package/dist/cli/render-doctor.d.ts +1 -1
  15. package/dist/cli/render-doctor.js +23 -23
  16. package/dist/cli/render-doctor.js.map +1 -1
  17. package/dist/cli/render-explain.d.ts.map +1 -1
  18. package/dist/cli/render-explain.js +33 -19
  19. package/dist/cli/render-explain.js.map +1 -1
  20. package/dist/cli/render-graph.d.ts +3 -3
  21. package/dist/cli/render-graph.js +12 -12
  22. package/dist/cli/render-graph.js.map +1 -1
  23. package/dist/cli/render-openapi.d.ts +38 -0
  24. package/dist/cli/render-openapi.d.ts.map +1 -0
  25. package/dist/cli/render-openapi.js +131 -0
  26. package/dist/cli/render-openapi.js.map +1 -0
  27. package/dist/cli/render-projection.d.ts +29 -0
  28. package/dist/cli/render-projection.d.ts.map +1 -0
  29. package/dist/cli/render-projection.js +202 -0
  30. package/dist/cli/render-projection.js.map +1 -0
  31. package/dist/define-app.d.ts +49 -17
  32. package/dist/define-app.d.ts.map +1 -1
  33. package/dist/define-app.js +16 -9
  34. package/dist/define-app.js.map +1 -1
  35. package/dist/diagnostics.d.ts +19 -15
  36. package/dist/diagnostics.d.ts.map +1 -1
  37. package/dist/diagnostics.js +2 -2
  38. package/dist/index.d.ts +15 -12
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +7 -5
  41. package/dist/index.js.map +1 -1
  42. package/dist/init-pips.d.ts +45 -0
  43. package/dist/init-pips.d.ts.map +1 -0
  44. package/dist/init-pips.js +49 -0
  45. package/dist/init-pips.js.map +1 -0
  46. package/dist/init-plugins.d.ts +45 -0
  47. package/dist/init-plugins.d.ts.map +1 -0
  48. package/dist/init-plugins.js +49 -0
  49. package/dist/init-plugins.js.map +1 -0
  50. package/dist/kernel/app-instance.d.ts +5 -5
  51. package/dist/kernel/app-instance.d.ts.map +1 -1
  52. package/dist/kernel/app-instance.js +375 -244
  53. package/dist/kernel/app-instance.js.map +1 -1
  54. package/dist/kernel/otel.d.ts +19 -19
  55. package/dist/kernel/otel.d.ts.map +1 -1
  56. package/dist/kernel/otel.js +22 -22
  57. package/dist/kernel/otel.js.map +1 -1
  58. package/dist/lifecycle-observer.d.ts +10 -10
  59. package/dist/lifecycle-observer.d.ts.map +1 -1
  60. package/dist/lifecycle-observer.js +1 -1
  61. package/dist/lifecycle.d.ts +18 -14
  62. package/dist/lifecycle.d.ts.map +1 -1
  63. package/dist/lifecycle.js +13 -9
  64. package/dist/lifecycle.js.map +1 -1
  65. package/dist/manifest.d.ts +70 -29
  66. package/dist/manifest.d.ts.map +1 -1
  67. package/dist/manifest.js +74 -5
  68. package/dist/manifest.js.map +1 -1
  69. package/dist/pip-contract.d.ts +40 -10
  70. package/dist/pip-contract.d.ts.map +1 -1
  71. package/dist/pip-contract.js +1 -25
  72. package/dist/pip-contract.js.map +1 -1
  73. package/dist/pip.d.ts +7 -4
  74. package/dist/pip.d.ts.map +1 -1
  75. package/dist/pip.js +2 -0
  76. package/dist/pip.js.map +1 -1
  77. package/dist/plugin-contract.d.ts +335 -143
  78. package/dist/plugin-contract.d.ts.map +1 -1
  79. package/dist/plugin-contract.js +201 -36
  80. package/dist/plugin-contract.js.map +1 -1
  81. package/dist/plugin.d.ts +18 -15
  82. package/dist/plugin.d.ts.map +1 -1
  83. package/dist/plugin.js +11 -11
  84. package/dist/plugin.js.map +1 -1
  85. package/dist/test-harness.d.ts +31 -31
  86. package/dist/test-harness.d.ts.map +1 -1
  87. package/dist/test-harness.js +29 -28
  88. package/dist/test-harness.js.map +1 -1
  89. package/dist/timeline.d.ts +2 -2
  90. package/dist/timeline.js +5 -5
  91. package/dist/timeline.js.map +1 -1
  92. package/package.json +9 -9
  93. package/src/cli/discover.ts +2 -2
  94. package/src/cli/error-codes.ts +12 -0
  95. package/src/cli/index.ts +93 -15
  96. package/src/cli/new.ts +1 -1
  97. package/src/cli/render-doctor.ts +21 -21
  98. package/src/cli/render-explain.ts +37 -19
  99. package/src/cli/render-graph.ts +12 -12
  100. package/src/cli/render-projection.ts +239 -0
  101. package/src/define-app.ts +85 -22
  102. package/src/diagnostics.ts +19 -15
  103. package/src/index.ts +38 -20
  104. package/src/init-plugins.ts +142 -0
  105. package/src/kernel/app-instance.ts +428 -282
  106. package/src/kernel/otel.ts +27 -27
  107. package/src/lifecycle-observer.ts +10 -10
  108. package/src/lifecycle.ts +19 -15
  109. package/src/manifest.ts +128 -31
  110. package/src/{pip-contract.ts → plugin-contract.ts} +83 -44
  111. package/src/{pip.ts → plugin.ts} +38 -18
  112. package/src/test-harness.ts +52 -51
  113. package/src/timeline.ts +6 -6
  114. package/templates/app-minimal/AGENTS.md.tmpl +9 -9
  115. package/templates/app-minimal/README.md.tmpl +1 -1
  116. package/templates/app-minimal/tests/boot.test.ts.tmpl +1 -1
package/dist/lifecycle.js CHANGED
@@ -16,7 +16,7 @@
16
16
  */
17
17
  /**
18
18
  * The complete set of lifecycle hooks in execution order.
19
- * `stop` and `dispose` run in reverse declaration order across pips, but the
19
+ * `stop` and `dispose` run in reverse declaration order across plugins, but the
20
20
  * sequence of hooks themselves is always `configure -> boot -> start -> stop -> dispose`.
21
21
  */
22
22
  export const DOT_LIFECYCLE_HOOKS = [
@@ -48,16 +48,20 @@ export const DotLifecycleErrorCode = {
48
48
  // v2 wiring model — declaration order is boot order, so cycles and
49
49
  // name-based dependency declarations no longer exist. Codes are never
50
50
  // reused for new meanings.
51
- /** Pip registered twice. */
52
- DuplicatePip: 'DOT_LIFECYCLE_E011',
53
- /** A pip's `needs` entry has no provider among earlier-booted pips. */
51
+ /** Plugin registered twice. */
52
+ DuplicatePlugin: 'DOT_LIFECYCLE_E011',
53
+ /** A plugin's `needs` entry has no provider among earlier-booted plugins. */
54
54
  UnsatisfiedNeed: 'DOT_LIFECYCLE_E012',
55
- /** A pip published a wire key that an earlier pip already provides. */
55
+ /** A plugin published a wire key that an earlier plugin already provides. */
56
56
  ServiceCollision: 'DOT_LIFECYCLE_E013',
57
57
  /** A needs alias, publish key, or rename target uses the reserved `$` prefix. */
58
58
  ReservedServiceKey: 'DOT_LIFECYCLE_E014',
59
59
  /** A lifecycle hook exceeded the app's `hookTimeoutMs` watchdog. */
60
60
  HookTimeout: 'DOT_LIFECYCLE_E015',
61
+ /** Two actions in the same binding use the same id. */
62
+ DuplicateAction: 'DOT_LIFECYCLE_E016',
63
+ /** Action metadata is not JSON-round-trip safe. */
64
+ ActionMetaNotJson: 'DOT_LIFECYCLE_E017',
61
65
  };
62
66
  /**
63
67
  * Structured error thrown for any lifecycle failure or misuse.
@@ -65,14 +69,14 @@ export const DotLifecycleErrorCode = {
65
69
  * Carries:
66
70
  * - `code` — stable machine-readable error code (see {@link DotLifecycleErrorCode}).
67
71
  * - `phase` — which hook (or pseudo-hook) failed.
68
- * - `pip` — which pip name, when applicable.
72
+ * - `plugin` — which plugin name, when applicable.
69
73
  * - `cause` — original error if wrapped from a hook throw.
70
- * - `failures` — for aggregate errors (stop/dispose), the per-pip failures.
74
+ * - `failures` — for aggregate errors (stop/dispose), the per-plugin failures.
71
75
  */
72
76
  export class DotLifecycleError extends Error {
73
77
  code;
74
78
  phase;
75
- pip;
79
+ plugin;
76
80
  cause;
77
81
  failures;
78
82
  constructor(args) {
@@ -80,7 +84,7 @@ export class DotLifecycleError extends Error {
80
84
  this.name = 'DotLifecycleError';
81
85
  this.code = args.code;
82
86
  this.phase = args.phase;
83
- this.pip = args.pip;
87
+ this.plugin = args.plugin;
84
88
  this.cause = args.cause;
85
89
  this.failures = args.failures;
86
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,WAAW;IACX,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;CACD,CAAC;AAiBX,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,oEAAoE;IACpE,cAAc,EAAE,oBAAoB;IACpC,gCAAgC;IAChC,eAAe,EAAE,oBAAoB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,oBAAoB;IAChC,4BAA4B;IAC5B,WAAW,EAAE,oBAAoB;IACjC,kDAAkD;IAClD,UAAU,EAAE,oBAAoB;IAChC,qDAAqD;IACrD,aAAa,EAAE,oBAAoB;IACnC,mDAAmD;IACnD,iBAAiB,EAAE,oBAAoB;IACvC,8DAA8D;IAC9D,iBAAiB,EAAE,oBAAoB;IACvC,2EAA2E;IAC3E,mEAAmE;IACnE,sEAAsE;IACtE,2BAA2B;IAC3B,4BAA4B;IAC5B,YAAY,EAAE,oBAAoB;IAClC,uEAAuE;IACvE,eAAe,EAAE,oBAAoB;IACrC,uEAAuE;IACvE,gBAAgB,EAAE,oBAAoB;IACtC,iFAAiF;IACjF,kBAAkB,EAAE,oBAAoB;IACxC,oEAAoE;IACpE,WAAW,EAAE,oBAAoB;CACzB,CAAC;AAIX;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAA6B;IACjC,KAAK,CAAmB;IACxB,GAAG,CAAU;IACJ,KAAK,CAAW;IACzB,QAAQ,CAAqC;IAEtD,YAAY,IAOX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,WAAW;IACX,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;CACD,CAAC;AAiBX,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,oEAAoE;IACpE,cAAc,EAAE,oBAAoB;IACpC,gCAAgC;IAChC,eAAe,EAAE,oBAAoB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,oBAAoB;IAChC,4BAA4B;IAC5B,WAAW,EAAE,oBAAoB;IACjC,kDAAkD;IAClD,UAAU,EAAE,oBAAoB;IAChC,qDAAqD;IACrD,aAAa,EAAE,oBAAoB;IACnC,mDAAmD;IACnD,iBAAiB,EAAE,oBAAoB;IACvC,8DAA8D;IAC9D,iBAAiB,EAAE,oBAAoB;IACvC,2EAA2E;IAC3E,mEAAmE;IACnE,sEAAsE;IACtE,2BAA2B;IAC3B,+BAA+B;IAC/B,eAAe,EAAE,oBAAoB;IACrC,6EAA6E;IAC7E,eAAe,EAAE,oBAAoB;IACrC,6EAA6E;IAC7E,gBAAgB,EAAE,oBAAoB;IACtC,iFAAiF;IACjF,kBAAkB,EAAE,oBAAoB;IACxC,oEAAoE;IACpE,WAAW,EAAE,oBAAoB;IACjC,uDAAuD;IACvD,eAAe,EAAE,oBAAoB;IACrC,mDAAmD;IACnD,iBAAiB,EAAE,oBAAoB;CAC/B,CAAC;AAIX;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAA6B;IACjC,KAAK,CAAmB;IACxB,MAAM,CAAU;IACP,KAAK,CAAW;IACzB,QAAQ,CAAwC;IAEzD,YAAY,IAOX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF"}
@@ -2,71 +2,112 @@
2
2
  * Manifest types for the DOT kernel.
3
3
  *
4
4
  * A `DotAppManifest` is the static, declarative description of an app: which
5
- * pips are registered, what routes/services they contribute, and how they
5
+ * plugins are registered, what actions/services/projections they contribute, and how they
6
6
  * depend on each other. It is built up during the `configure` phase from
7
7
  * registration calls and finalised once `configure` completes.
8
8
  *
9
- * CONTRACT: `DotAppManifest` always exposes the same five top-level arrays
10
- * (`pips`, `routes`, `services`, `lifecycle`, `dependencies`). Consumers
11
- * MUST NOT see an omitted array — empty is empty, but never missing.
12
- * This shape is referenced by Task 7's scorecard.
9
+ * CONTRACT: `DotAppManifest` always exposes the same six top-level arrays
10
+ * (`plugins`, `actions`, `services`, `lifecycle`, `dependencies`,
11
+ * `projections`). Consumers MUST NOT see an omitted array — empty is empty,
12
+ * but never missing.
13
13
  */
14
14
  import type { DotLifecycleHook } from './lifecycle.js';
15
+ /** JSON-serializable value — the manifest's currency. */
16
+ export type JsonValue = string | number | boolean | null | JsonValue[] | {
17
+ [key: string]: JsonValue;
18
+ };
19
+ /** JSON-serializable object used for adapter-owned manifest metadata. */
20
+ export type JsonObject = {
21
+ [key: string]: JsonValue;
22
+ };
23
+ /**
24
+ * Validate and narrow unknown adapter data into manifest JSON metadata.
25
+ *
26
+ * The check intentionally compares the original value against a
27
+ * JSON.stringify/parse round trip. Dates, functions, undefined fields, NaN,
28
+ * Infinity, class instances, and cycles fail instead of being silently
29
+ * coerced in `dot explain --json`.
30
+ */
31
+ export declare function toJsonObject(value: unknown): JsonObject;
15
32
  /**
16
- * Kind of service that a pip can publish.
33
+ * Kind of service that a plugin can publish.
17
34
  *
18
35
  * Well-known kinds map 1:1 to the canonical `@arki/*` adapters. `custom`
19
- * is the escape hatch for pip-defined service kinds — use it whenever a
20
- * pip publishes something that does not fit a reserved shape.
36
+ * is the escape hatch for plugin-defined service kinds — use it whenever a
37
+ * plugin publishes something that does not fit a reserved shape.
21
38
  */
22
39
  export type ServiceKind = 'env' | 'db' | 'kv' | 'queue' | 'auth' | 'email' | 'logger' | 'event-store' | 'message-bus' | 'custom';
23
- /** Transport that a route is exposed under. */
24
- export type RouteTransport = 'http' | 'orpc' | 'trpc' | 'rpc' | 'custom';
25
- /** Kind of dependency edge between two pips. */
40
+ /** Kind of dependency edge between two plugins. */
26
41
  export type DependencyEdgeKind = 'requires' | 'provides' | 'uses';
42
+ /** Direction of a boundary interaction, viewed from the app. */
43
+ export type ActionDirection = 'in' | 'out';
44
+ /** Something the app does at a boundary — universal, serializable, tiny. */
45
+ export type ActionManifest = {
46
+ /** Stable identifier, e.g. `orders.list` or `orders.created.consume`. */
47
+ id: string;
48
+ plugin: string;
49
+ /** Adapter-owned binding name: `http`, `queue`, `cli`, `cron`, etc. */
50
+ binding: string;
51
+ /** `in` = world invokes/feeds the app; `out` = app emits. */
52
+ direction: ActionDirection;
53
+ /** Display-only address printed by `dot explain`. */
54
+ address?: string;
55
+ /** Human summary rendered into explain output and projected documents. */
56
+ summary?: string;
57
+ /** Adapter-owned, JSON-serializable detail. Opaque to the kernel. */
58
+ meta?: Readonly<JsonObject>;
59
+ /** Optional adapter-owned identifier+version for the meta layout. */
60
+ metaSchema?: string;
61
+ };
62
+ /** Registered projection renderer for an adapter-owned document format. */
63
+ export type ProjectionManifest = {
64
+ /** Document format key matched by `dot explain --as <format>`. */
65
+ format: string;
66
+ /** Binding this projection primarily renders. Informational. */
67
+ binding: string;
68
+ /** Import specifier for the projection module. */
69
+ module: string;
70
+ /** Plugin that registered this projection. */
71
+ plugin: string;
72
+ };
27
73
  /**
28
74
  * Top-level manifest describing the static shape of a DOT app.
29
75
  *
30
- * Always carries the five arrays — never omits any of them.
76
+ * Always carries the six arrays — never omits any of them.
31
77
  */
32
78
  export type DotAppManifest = {
79
+ /** Manifest schema version. 2 = actions/projections era. */
80
+ manifestVersion: 2;
33
81
  app: {
34
82
  name: string;
35
83
  version?: string;
36
84
  };
37
- pips: PipManifest[];
38
- routes: RouteManifest[];
85
+ plugins: PluginManifest[];
86
+ actions: ActionManifest[];
39
87
  services: ServiceManifest[];
40
88
  lifecycle: LifecycleManifest[];
41
89
  dependencies: DependencyEdge[];
90
+ projections: ProjectionManifest[];
42
91
  };
43
- /** Single pip's declarative metadata. */
44
- export type PipManifest = {
92
+ /** Single plugin's declarative metadata. */
93
+ export type PluginManifest = {
45
94
  name: string;
46
95
  version?: string;
47
96
  dependencies: readonly string[];
48
97
  provides: readonly string[];
49
98
  };
50
- /** Single route exposed by a pip. */
51
- export type RouteManifest = {
52
- id: string;
53
- pip: string;
54
- method?: string;
55
- path?: string;
56
- transport: RouteTransport;
57
- };
58
- /** Single service published by a pip. */
99
+ /** Single service published by a plugin. */
59
100
  export type ServiceManifest = {
60
101
  name: string;
61
- pip: string;
102
+ plugin: string;
62
103
  kind: ServiceKind;
63
104
  };
64
- /** Which lifecycle hooks a pip participates in. */
105
+ /** Which lifecycle hooks a plugin participates in. */
65
106
  export type LifecycleManifest = {
66
- pip: string;
107
+ plugin: string;
67
108
  hooks: readonly DotLifecycleHook[];
68
109
  };
69
- /** Directed edge in the pip dependency graph. */
110
+ /** Directed edge in the plugin dependency graph. */
70
111
  export type DependencyEdge = {
71
112
  from: string;
72
113
  to: string;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,aAAa,GACb,aAAa,GACb,QAAQ,CAAC;AAEb,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEzE,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpC,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
package/dist/manifest.js CHANGED
@@ -2,13 +2,82 @@
2
2
  * Manifest types for the DOT kernel.
3
3
  *
4
4
  * A `DotAppManifest` is the static, declarative description of an app: which
5
- * pips are registered, what routes/services they contribute, and how they
5
+ * plugins are registered, what actions/services/projections they contribute, and how they
6
6
  * depend on each other. It is built up during the `configure` phase from
7
7
  * registration calls and finalised once `configure` completes.
8
8
  *
9
- * CONTRACT: `DotAppManifest` always exposes the same five top-level arrays
10
- * (`pips`, `routes`, `services`, `lifecycle`, `dependencies`). Consumers
11
- * MUST NOT see an omitted array — empty is empty, but never missing.
12
- * This shape is referenced by Task 7's scorecard.
9
+ * CONTRACT: `DotAppManifest` always exposes the same six top-level arrays
10
+ * (`plugins`, `actions`, `services`, `lifecycle`, `dependencies`,
11
+ * `projections`). Consumers MUST NOT see an omitted array — empty is empty,
12
+ * but never missing.
13
13
  */
14
+ function jsonRoundTrip(value) {
15
+ let serialized;
16
+ try {
17
+ serialized = JSON.stringify(value);
18
+ }
19
+ catch (error) {
20
+ throw new TypeError('Value must be JSON-serializable manifest data.', { cause: error });
21
+ }
22
+ if (serialized === undefined) {
23
+ throw new TypeError('Value must be a JSON-serializable object.');
24
+ }
25
+ return JSON.parse(serialized);
26
+ }
27
+ function isJsonPrimitive(value) {
28
+ return value === null || typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number';
29
+ }
30
+ function isPlainObject(value) {
31
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
32
+ return false;
33
+ const prototype = Object.getPrototypeOf(value);
34
+ return prototype === Object.prototype || prototype === null;
35
+ }
36
+ function isJsonValue(value) {
37
+ if (isJsonPrimitive(value))
38
+ return typeof value !== 'number' || Number.isFinite(value);
39
+ if (Array.isArray(value))
40
+ return value.every(isJsonValue);
41
+ if (!isPlainObject(value))
42
+ return false;
43
+ return Object.values(value).every(isJsonValue);
44
+ }
45
+ function isJsonObject(value) {
46
+ return isPlainObject(value) && Object.values(value).every(isJsonValue);
47
+ }
48
+ function jsonDeepEqual(left, right) {
49
+ if (isJsonPrimitive(left) || isJsonPrimitive(right))
50
+ return Object.is(left, right);
51
+ if (Array.isArray(left) || Array.isArray(right)) {
52
+ if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length)
53
+ return false;
54
+ return left.every((value, index) => jsonDeepEqual(value, right[index]));
55
+ }
56
+ if (!isPlainObject(left) || !isPlainObject(right))
57
+ return false;
58
+ const leftEntries = Object.entries(left);
59
+ const rightEntries = Object.entries(right);
60
+ if (leftEntries.length !== rightEntries.length)
61
+ return false;
62
+ for (const [key, value] of leftEntries) {
63
+ if (!Object.hasOwn(right, key) || !jsonDeepEqual(value, right[key]))
64
+ return false;
65
+ }
66
+ return true;
67
+ }
68
+ /**
69
+ * Validate and narrow unknown adapter data into manifest JSON metadata.
70
+ *
71
+ * The check intentionally compares the original value against a
72
+ * JSON.stringify/parse round trip. Dates, functions, undefined fields, NaN,
73
+ * Infinity, class instances, and cycles fail instead of being silently
74
+ * coerced in `dot explain --json`.
75
+ */
76
+ export function toJsonObject(value) {
77
+ const parsed = jsonRoundTrip(value);
78
+ if (!isJsonObject(parsed) || !jsonDeepEqual(value, parsed)) {
79
+ throw new TypeError('Value must be a JSON-serializable object without lossy coercions.');
80
+ }
81
+ return parsed;
82
+ }
14
83
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@
17
17
  * - `stop` and `dispose` run in reverse declaration order and continue
18
18
  * through individual pip failures, reporting an aggregate error.
19
19
  */
20
- import type { RouteTransport, ServiceKind } from './manifest.js';
20
+ import type { ActionManifest, ProjectionManifest, JsonObject, ServiceKind } from './manifest.js';
21
21
  declare const TypeOf: unique symbol;
22
22
  /**
23
23
  * Phantom type witness for a service. Carries `T` at the type level only —
@@ -192,6 +192,25 @@ export type KernelCtx = {
192
192
  readonly $config: Readonly<Record<string, unknown>>;
193
193
  };
194
194
  /** Context provided to a `configure` hook (sync registration only). */
195
+ export type ActionDeclaration = Omit<ActionManifest, 'pip'>;
196
+ /** Structural protocol for adapter-owned declarations. */
197
+ export type ActionSource = ActionDeclaration | {
198
+ toDotAction(): ActionDeclaration;
199
+ };
200
+ export type ProjectionDeclaration = Omit<ProjectionManifest, 'pip'>;
201
+ type LegacyRouteDeclaration = {
202
+ id: string;
203
+ method?: string;
204
+ path?: string;
205
+ transport: string;
206
+ description?: string;
207
+ input?: {
208
+ readonly query?: Readonly<JsonObject>;
209
+ readonly body?: Readonly<JsonObject>;
210
+ };
211
+ output?: Readonly<JsonObject>;
212
+ streaming?: boolean;
213
+ };
195
214
  export type DotConfigureContext = {
196
215
  pipName: string;
197
216
  /** App name. */
@@ -202,13 +221,12 @@ export type DotConfigureContext = {
202
221
  * is returned from the `boot` hook.
203
222
  */
204
223
  registerService(name: string, kind: ServiceKind): void;
205
- /** Register a route this pip exposes. */
206
- registerRoute(route: {
207
- id: string;
208
- method?: string;
209
- path?: string;
210
- transport: RouteTransport;
211
- }): void;
224
+ /** Register an action this pip contributes at an app boundary. */
225
+ registerAction(action: ActionDeclaration): void;
226
+ /** Register a projection renderer this pip contributes. */
227
+ registerProjection(projection: ProjectionDeclaration): void;
228
+ /** @deprecated Use `registerAction`; removed in DOT 0.5.0. */
229
+ registerRoute(route: LegacyRouteDeclaration): void;
212
230
  /** Mark the pip as participating in a lifecycle hook. */
213
231
  registerLifecycleHook(hook: 'configure' | 'boot' | 'start' | 'stop' | 'dispose'): void;
214
232
  /** Append `provides` capability strings (informational, manifest-only). */
@@ -235,6 +253,7 @@ export type Pip<TNeeds extends ServiceRecord = ServiceRecord, TProvides extends
235
253
  readonly version?: string;
236
254
  /** Runtime needs shape (local alias → witness). */
237
255
  readonly needs: NeedsShape;
256
+ readonly actions: readonly ActionSource[];
238
257
  /** Mount-time renames: publish key → new wire key (see {@link rename}). */
239
258
  readonly renames: Readonly<Record<string, string>>;
240
259
  readonly hooks: {
@@ -278,16 +297,27 @@ export type AnyPip = Pip<ServiceRecord, ServiceRecord>;
278
297
  * });
279
298
  * ```
280
299
  */
300
+ /**
301
+ * A `boot` that returns `void` gives `TProvides` no inference candidate,
302
+ * and TypeScript then substitutes the CONSTRAINT (`ServiceRecord & …`,
303
+ * whose `keyof` is `string`) rather than the declared default. That wide
304
+ * record would poison the app builder's collision check for every later
305
+ * `.use()` — `keyof TAvail & string` is never empty. Detect the fallback
306
+ * by its tell (a full string index signature — no `pip()`-authored
307
+ * provides record has one) and collapse it to "provides nothing".
308
+ */
309
+ export type InferredProvides<TP extends ServiceRecord> = string extends keyof TP ? EmptyShape : TP;
281
310
  export declare function pip<TShape extends NeedsShape & NoReservedKeys = EmptyShape, TProvides extends ServiceRecord & NoReservedKeys = EmptyShape>(def: {
282
311
  readonly name: string;
283
312
  readonly version?: string;
284
313
  readonly needs?: TShape;
314
+ readonly actions?: readonly ActionSource[];
285
315
  readonly configure?: (ctx: DotConfigureContext) => void;
286
316
  readonly boot?: (ctx: CtxOf<TShape> & KernelCtx) => MaybePromise<TProvides | void>;
287
317
  readonly start?: (ctx: CtxOf<TShape> & TProvides & KernelCtx) => MaybePromise<void>;
288
318
  readonly stop?: (ctx: CtxOf<TShape> & TProvides & KernelCtx) => MaybePromise<void>;
289
319
  readonly dispose?: (ctx: CtxOf<TShape> & TProvides & KernelCtx) => MaybePromise<void>;
290
- }): Pip<WireNeeds<TShape>, TProvides>;
320
+ }): Pip<WireNeeds<TShape>, InferredProvides<TProvides>>;
291
321
  /** Rename a pip's published wire keys — the multi-instance primitive. */
292
322
  export type RenamedProvides<TP, M> = {
293
323
  [K in keyof TP as K extends keyof M ? (M[K] extends string ? M[K] : K) : K]: TP[K];
@@ -333,5 +363,5 @@ export declare class DotPipError extends Error {
333
363
  });
334
364
  }
335
365
  /** Re-exported for downstream typing. */
336
- export { type DotAppManifest, type PipManifest } from './manifest.js';
366
+ export { type ActionManifest, type DotAppManifest, type PipManifest, type ProjectionManifest } from './manifest.js';
337
367
  //# sourceMappingURL=pip-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pip-contract.d.ts","sourceRoot":"","sources":["../src/pip-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,MAAM,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEnD,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;IAClD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;CAGrF,CAAC;AAEF,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAC7D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC5D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAQpE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,CAAC;CAAE,CAGxF;AAED,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,sFAAsF;AACtF,eAAO,MAAM,OAAO,EAAE,OAAO,MAA2B,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;IACpB,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACzB;;;;OAIG;IACH,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAClB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC;IACtB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B,CAAC;AAQF;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC1B,OAAO,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAAO,GACtE,IAAI,CAAC,CAAC,CAAC,CAkDT;AAED,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAgB3C;AAED,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAK1D,MAAM,MAAM,UAAU,GAAG,EAAE,CAAC;AAE5B;;;;GAIG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,UAAU,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACxG,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI;KAC3C,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC5G,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACvD,yCAAyC;IACzC,aAAa,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACtG,yDAAyD;IACzD,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACvF,2EAA2E;IAC3E,eAAe,CAAC,GAAG,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,OAAO,CAAC,MAAM,QAAQ,EAAE,OAAO,MAAM,CAAC;AACtC,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,GAAG,CACb,MAAM,SAAS,aAAa,GAAG,aAAa,EAC5C,SAAS,SAAS,aAAa,GAAG,aAAa,IAC7C;IACF,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,IAAI,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;QACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;QACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC;CACpC,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5E,oDAAoD;AACpD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAEjF,4EAA4E;AAC5E,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,GAAG,CACjB,MAAM,SAAS,UAAU,GAAG,cAAc,GAAG,UAAU,EACvD,SAAS,SAAS,aAAa,GAAG,cAAc,GAAG,UAAU,EAC7D,GAAG,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,KAAK,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACpF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACnF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACvF,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAcpC;AAED,yEAAyE;AACzE,MAAM,MAAM,eAAe,CAAC,EAAE,EAAE,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,EAAE,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACnF,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,EAAE,SAAS,aAAa,EACxB,EAAE,SAAS,aAAa,EACxB,KAAK,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;CAAE,EACrD,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAY3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B;CAOF;AAED,yCAAyC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"pip-contract.d.ts","sourceRoot":"","sources":["../src/pip-contract.ts"],"names":[],"mappings":"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"}
@@ -137,36 +137,12 @@ export function lazyOf(value) {
137
137
  },
138
138
  };
139
139
  }
140
- /**
141
- * Author a DOT pip.
142
- *
143
- * - `TShape` is inferred from the `needs` object literal.
144
- * - `TProvides` is inferred from `boot`'s return type — no generic argument.
145
- * - `boot({ db, log, $app })` destructures typed services under the local
146
- * aliases declared in `needs`, plus the `$`-prefixed kernel keys.
147
- * - `start` / `stop` / `dispose` additionally receive the pip's own
148
- * provides. Reverse-order teardown guarantees needs are still alive in
149
- * `dispose`.
150
- *
151
- * @example
152
- * ```ts
153
- * export const billing = pip({
154
- * name: 'billing',
155
- * needs: { db: service<Db>(), log: service<Logger>() },
156
- * async boot({ db, log }) {
157
- * return { billing: new BillingService(db, log) };
158
- * },
159
- * async dispose({ billing }) {
160
- * await billing.flush();
161
- * },
162
- * });
163
- * ```
164
- */
165
140
  export function pip(def) {
166
141
  return {
167
142
  name: def.name,
168
143
  ...(def.version === undefined ? {} : { version: def.version }),
169
144
  needs: def.needs ?? {},
145
+ actions: def.actions ?? [],
170
146
  renames: {},
171
147
  hooks: {
172
148
  ...(def.configure === undefined ? {} : { configure: def.configure }),
@@ -1 +1 @@
1
- {"version":3,"file":"pip-contract.js","sourceRoot":"","sources":["../src/pip-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pip-contract.js","sourceRoot":"","sources":["../src/pip-contract.ts"],"names":[],"mappings":"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"}
package/dist/pip.d.ts CHANGED
@@ -15,15 +15,18 @@
15
15
  * ```
16
16
  */
17
17
  export { isLazy, lazy, lazyOf, pip, provide, rename, service, token, DotPipError } from './pip-contract.js';
18
- export type { AnyPip, CtxOf, DotConfigureContext, EmptyShape, KernelCtx, Lazy, LazyService, NeedsShape, Pip, PipNeeds, PipProvides, RenamedProvides, Service, ServiceRecord, Token, WireNeeds, } from './pip-contract.js';
18
+ export type { AnyPip, ActionDeclaration, ActionSource, CtxOf, DotConfigureContext, EmptyShape, InferredProvides, KernelCtx, Lazy, LazyService, NeedsShape, NoReservedKeys, Pip, PipNeeds, PipProvides, ProjectionDeclaration, RenamedProvides, Service, ServiceRecord, Token, WireNeeds, } from './pip-contract.js';
19
19
  export { defineApp } from './define-app.js';
20
- export type { DotApp, DotAppBuilder, DotAppConfigured } from './define-app.js';
20
+ export type { DotApp, DotAppBuilder, DotAppConfigured, NormalizeProvides, UseAllAvail, UseAllGuard, UseGuard, } from './define-app.js';
21
+ export { initPips } from './init-pips.js';
22
+ export type { InitPipsFactory } from './init-pips.js';
21
23
  export { testApp, bootTestApp } from './test-harness.js';
22
24
  export type { TestAppOptions } from './test-harness.js';
23
25
  export type { DotLifecycleHook, DotLifecycleState, DotLifecyclePipFailure, DotLifecycleErrorCodeValue, } from './lifecycle.js';
24
26
  export { DotLifecycleError, DotLifecycleErrorCode, DOT_LIFECYCLE_HOOKS } from './lifecycle.js';
25
- export type { DotAppManifest, PipManifest, RouteManifest, ServiceManifest, LifecycleManifest, DependencyEdge, DependencyEdgeKind, ServiceKind, RouteTransport, } from './manifest.js';
26
- export type { DotDiagnosticsSnapshot, PipDiagnostic, RouteDiagnostic, ServiceDiagnostic, LifecycleDiagnostic, DiagnosticIssue, DiagnosticSeverity, DiagnosticStatus, } from './diagnostics.js';
27
+ export type { DotAppManifest, ActionDirection, ActionManifest, JsonObject, JsonValue, PipManifest, ProjectionManifest, ServiceManifest, LifecycleManifest, DependencyEdge, DependencyEdgeKind, ServiceKind, } from './manifest.js';
28
+ export { toJsonObject } from './manifest.js';
29
+ export type { DotDiagnosticsSnapshot, PipDiagnostic, ActionDiagnostic, ServiceDiagnostic, LifecycleDiagnostic, DiagnosticIssue, DiagnosticSeverity, DiagnosticStatus, } from './diagnostics.js';
27
30
  export type { DotLifecycleEvent, DotLifecycleEventStatus, DotLifecycleObserver, DotPhaseLifecycleEvent, DotPipHookLifecycleEvent, } from './lifecycle-observer.js';
28
31
  export { renderTimeline } from './timeline.js';
29
32
  export type { RenderTimelineOptions } from './timeline.js';
package/dist/pip.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pip.d.ts","sourceRoot":"","sources":["../src/pip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5G,YAAY,EACV,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,WAAW,EACX,UAAU,EACV,GAAG,EACH,QAAQ,EACR,WAAW,EACX,eAAe,EACf,OAAO,EACP,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"pip.d.ts","sourceRoot":"","sources":["../src/pip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5G,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,UAAU,EACV,cAAc,EACd,GAAG,EACH,QAAQ,EACR,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,OAAO,EACP,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,YAAY,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
package/dist/pip.js CHANGED
@@ -16,7 +16,9 @@
16
16
  */
17
17
  export { isLazy, lazy, lazyOf, pip, provide, rename, service, token, DotPipError } from './pip-contract.js';
18
18
  export { defineApp } from './define-app.js';
19
+ export { initPips } from './init-pips.js';
19
20
  export { testApp, bootTestApp } from './test-harness.js';
20
21
  export { DotLifecycleError, DotLifecycleErrorCode, DOT_LIFECYCLE_HOOKS } from './lifecycle.js';
22
+ export { toJsonObject } from './manifest.js';
21
23
  export { renderTimeline } from './timeline.js';
22
24
  //# sourceMappingURL=pip.js.map
package/dist/pip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pip.js","sourceRoot":"","sources":["../src/pip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoB5G,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASzD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAiC/F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"pip.js","sourceRoot":"","sources":["../src/pip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyB5G,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASzD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAgB/F,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAqB7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}