@primafuture/contrib-kit-react 1.0.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 (128) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +294 -0
  3. package/dist/contribution-component.d.ts +82 -0
  4. package/dist/contribution-component.d.ts.map +1 -0
  5. package/dist/contribution-component.js +12 -0
  6. package/dist/contribution-component.js.map +1 -0
  7. package/dist/extension-outlet.d.ts +155 -0
  8. package/dist/extension-outlet.d.ts.map +1 -0
  9. package/dist/extension-outlet.js +229 -0
  10. package/dist/extension-outlet.js.map +1 -0
  11. package/dist/extension-registry-provider.d.ts +26 -0
  12. package/dist/extension-registry-provider.d.ts.map +1 -0
  13. package/dist/extension-registry-provider.js +82 -0
  14. package/dist/extension-registry-provider.js.map +1 -0
  15. package/dist/index.d.ts +22 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +14 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/internal/adapter-configuration.d.ts +54 -0
  20. package/dist/internal/adapter-configuration.d.ts.map +1 -0
  21. package/dist/internal/adapter-configuration.js +89 -0
  22. package/dist/internal/adapter-configuration.js.map +1 -0
  23. package/dist/internal/adapter-context.d.ts +24 -0
  24. package/dist/internal/adapter-context.d.ts.map +1 -0
  25. package/dist/internal/adapter-context.js +23 -0
  26. package/dist/internal/adapter-context.js.map +1 -0
  27. package/dist/internal/adapter-registry-bridge.d.ts +58 -0
  28. package/dist/internal/adapter-registry-bridge.d.ts.map +1 -0
  29. package/dist/internal/adapter-registry-bridge.js +494 -0
  30. package/dist/internal/adapter-registry-bridge.js.map +1 -0
  31. package/dist/internal/adapter-registry-protocol.d.ts +53 -0
  32. package/dist/internal/adapter-registry-protocol.d.ts.map +1 -0
  33. package/dist/internal/adapter-registry-protocol.js +182 -0
  34. package/dist/internal/adapter-registry-protocol.js.map +1 -0
  35. package/dist/internal/adapter-scope.d.ts +87 -0
  36. package/dist/internal/adapter-scope.d.ts.map +1 -0
  37. package/dist/internal/adapter-scope.js +346 -0
  38. package/dist/internal/adapter-scope.js.map +1 -0
  39. package/dist/internal/implementation-classifier.d.ts +21 -0
  40. package/dist/internal/implementation-classifier.d.ts.map +1 -0
  41. package/dist/internal/implementation-classifier.js +39 -0
  42. package/dist/internal/implementation-classifier.js.map +1 -0
  43. package/dist/internal/managed-lazy-generation.d.ts +100 -0
  44. package/dist/internal/managed-lazy-generation.d.ts.map +1 -0
  45. package/dist/internal/managed-lazy-generation.js +419 -0
  46. package/dist/internal/managed-lazy-generation.js.map +1 -0
  47. package/dist/internal/outlet-commit-lease.d.ts +46 -0
  48. package/dist/internal/outlet-commit-lease.d.ts.map +1 -0
  49. package/dist/internal/outlet-commit-lease.js +137 -0
  50. package/dist/internal/outlet-commit-lease.js.map +1 -0
  51. package/dist/internal/outlet-error-pipeline.d.ts +122 -0
  52. package/dist/internal/outlet-error-pipeline.d.ts.map +1 -0
  53. package/dist/internal/outlet-error-pipeline.js +214 -0
  54. package/dist/internal/outlet-error-pipeline.js.map +1 -0
  55. package/dist/internal/outlet-input.d.ts +42 -0
  56. package/dist/internal/outlet-input.d.ts.map +1 -0
  57. package/dist/internal/outlet-input.js +86 -0
  58. package/dist/internal/outlet-input.js.map +1 -0
  59. package/dist/internal/outlet-membership-boundary.d.ts +93 -0
  60. package/dist/internal/outlet-membership-boundary.d.ts.map +1 -0
  61. package/dist/internal/outlet-membership-boundary.js +710 -0
  62. package/dist/internal/outlet-membership-boundary.js.map +1 -0
  63. package/dist/internal/outlet-membership.d.ts +31 -0
  64. package/dist/internal/outlet-membership.d.ts.map +1 -0
  65. package/dist/internal/outlet-membership.js +65 -0
  66. package/dist/internal/outlet-membership.js.map +1 -0
  67. package/dist/internal/outlet-projection.d.ts +102 -0
  68. package/dist/internal/outlet-projection.d.ts.map +1 -0
  69. package/dist/internal/outlet-projection.js +228 -0
  70. package/dist/internal/outlet-projection.js.map +1 -0
  71. package/dist/internal/outlet-reporter-boundary.d.ts +42 -0
  72. package/dist/internal/outlet-reporter-boundary.d.ts.map +1 -0
  73. package/dist/internal/outlet-reporter-boundary.js +57 -0
  74. package/dist/internal/outlet-reporter-boundary.js.map +1 -0
  75. package/dist/internal/public-input-capture.d.ts +13 -0
  76. package/dist/internal/public-input-capture.d.ts.map +1 -0
  77. package/dist/internal/public-input-capture.js +34 -0
  78. package/dist/internal/public-input-capture.js.map +1 -0
  79. package/dist/internal/resolved-contributions-query.d.ts +42 -0
  80. package/dist/internal/resolved-contributions-query.d.ts.map +1 -0
  81. package/dist/internal/resolved-contributions-query.js +203 -0
  82. package/dist/internal/resolved-contributions-query.js.map +1 -0
  83. package/dist/react-adapter-diagnostics.d.ts +199 -0
  84. package/dist/react-adapter-diagnostics.d.ts.map +1 -0
  85. package/dist/react-adapter-diagnostics.js +257 -0
  86. package/dist/react-adapter-diagnostics.js.map +1 -0
  87. package/dist/react-adapter-error.d.ts +35 -0
  88. package/dist/react-adapter-error.d.ts.map +1 -0
  89. package/dist/react-adapter-error.js +37 -0
  90. package/dist/react-adapter-error.js.map +1 -0
  91. package/dist/react-extension-point.d.ts +26 -0
  92. package/dist/react-extension-point.d.ts.map +1 -0
  93. package/dist/react-extension-point.js +100 -0
  94. package/dist/react-extension-point.js.map +1 -0
  95. package/dist/react-lazy-contribution.d.ts +40 -0
  96. package/dist/react-lazy-contribution.d.ts.map +1 -0
  97. package/dist/react-lazy-contribution.js +18 -0
  98. package/dist/react-lazy-contribution.js.map +1 -0
  99. package/dist/resolved-contributions.d.ts +90 -0
  100. package/dist/resolved-contributions.d.ts.map +1 -0
  101. package/dist/resolved-contributions.js +455 -0
  102. package/dist/resolved-contributions.js.map +1 -0
  103. package/package.json +47 -0
  104. package/src/contribution-component.ts +118 -0
  105. package/src/extension-outlet.ts +590 -0
  106. package/src/extension-registry-provider.ts +179 -0
  107. package/src/index.ts +72 -0
  108. package/src/internal/adapter-configuration.ts +181 -0
  109. package/src/internal/adapter-context.ts +43 -0
  110. package/src/internal/adapter-registry-bridge.ts +723 -0
  111. package/src/internal/adapter-registry-protocol.ts +365 -0
  112. package/src/internal/adapter-scope.ts +500 -0
  113. package/src/internal/implementation-classifier.ts +59 -0
  114. package/src/internal/managed-lazy-generation.ts +540 -0
  115. package/src/internal/outlet-commit-lease.ts +216 -0
  116. package/src/internal/outlet-error-pipeline.ts +447 -0
  117. package/src/internal/outlet-input.ts +264 -0
  118. package/src/internal/outlet-membership-boundary.ts +1048 -0
  119. package/src/internal/outlet-membership.ts +125 -0
  120. package/src/internal/outlet-projection.ts +511 -0
  121. package/src/internal/outlet-reporter-boundary.ts +105 -0
  122. package/src/internal/public-input-capture.ts +55 -0
  123. package/src/internal/resolved-contributions-query.ts +318 -0
  124. package/src/react-adapter-diagnostics.ts +457 -0
  125. package/src/react-adapter-error.ts +88 -0
  126. package/src/react-extension-point.ts +181 -0
  127. package/src/react-lazy-contribution.ts +66 -0
  128. package/src/resolved-contributions.ts +895 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlet-commit-lease.d.ts","sourceRoot":"","sources":["../../src/internal/outlet-commit-lease.ts"],"names":[],"mappings":"AAEA,2DAA2D;AAC3D,OAAO,CAAC,MAAM,wBAAwB,EAAE,OAAO,MAAM,CAAC;AAEtD,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IACnC,sEAAsE;IACtE,QAAQ,CAAC,CAAC,wBAAwB,CAAC,EAAE,iBAAiB,CAAC;CACvD;AAED,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1D,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IACjC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,kEAAkE;AAClE,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAExE,+DAA+D;AAC/D,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAiChE,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D;AAED;;GAEG;AACH,qBAAa,yBAAyB;;IAUrC,6DAA6D;IAC7D,YAAmB,iBAAiB,EAAE,0BAA0B,EAE/D;IAED,4EAA4E;IACrE,sBAAsB,IAAI,MAAM,CAEtC;IAED;;OAEG;IACI,OAAO,CACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,sBAAsB,GACpC,iBAAiB,CAkEnB;IAED,iFAAiF;IAC1E,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM1C;IAED,4EAA4E;IACrE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtC;CAgCD"}
@@ -0,0 +1,137 @@
1
+ import * as reactAdapterError from "../react-adapter-error.js";
2
+ /** Vytvoří nový owner cycle bez zděděné autority starých leases. */
3
+ function createOwnerCycle() {
4
+ return { authoritative: true, count: 0 };
5
+ }
6
+ /** Vytvoří render-pure outlet token bez external identity nebo side effectu. */
7
+ export function createOutletInstanceToken() {
8
+ return Object.freeze({});
9
+ }
10
+ /**
11
+ * Scope-local allocator a Strict grace registr commit-owned diagnostických identit.
12
+ */
13
+ export class OutletCommitLeaseRegistry {
14
+ /** Deterministický scheduler zachycený při vytvoření owning adapter scope. */
15
+ #scheduleMicrotask;
16
+ /** Token-indexovaný stav bez process-global nebo cross-scope historie. */
17
+ #recordsByToken = new WeakMap();
18
+ /** Iterovatelná množina pouze dosud nereleased scope records. */
19
+ #records = new Set();
20
+ /** Monotonický scope-local allocator obou druhů identit. */
21
+ #nextIdentity = 0;
22
+ /** Zachytí jediný scheduler seam pro celý scope lifetime. */
23
+ constructor(scheduleMicrotask) {
24
+ this.#scheduleMicrotask = scheduleMicrotask;
25
+ }
26
+ /** Vrátí počet dosud nefinalizovaných owner records pro lifecycle testy. */
27
+ readRetainedOwnerCount() {
28
+ return this.#records.size;
29
+ }
30
+ /**
31
+ * Přijme jednu committed lease; grace reacquire zachová existující ID.
32
+ */
33
+ acquire(epoch, kind, token, isEpochCurrent) {
34
+ if (!Number.isSafeInteger(epoch) || epoch < 1) {
35
+ throw new reactAdapterError.ReactAdapterError("REACT_ADAPTER_DISPOSED", "A commit lease requires an active adapter scope epoch.", { details: { field: "scope.epoch", phase: "lifecycle" } });
36
+ }
37
+ let record = this.#recordsByToken.get(token);
38
+ if (record !== undefined
39
+ && (record.kind !== kind || record.epoch !== epoch || record.state === "retired")) {
40
+ this.#retireRecord(record);
41
+ record = undefined;
42
+ }
43
+ if (record === undefined) {
44
+ this.#nextIdentity += 1;
45
+ record = {
46
+ token,
47
+ kind,
48
+ id: `react-${kind}:${this.#nextIdentity}`,
49
+ epoch,
50
+ cycle: createOwnerCycle(),
51
+ state: "active",
52
+ finalizeToken: 0,
53
+ };
54
+ this.#recordsByToken.set(token, record);
55
+ this.#records.add(record);
56
+ }
57
+ else if (record.state === "grace") {
58
+ record.finalizeToken += 1;
59
+ record.cycle = createOwnerCycle();
60
+ record.state = "active";
61
+ }
62
+ const currentRecord = record;
63
+ const cycle = currentRecord.cycle;
64
+ cycle.count += 1;
65
+ let active = true;
66
+ const registry = this;
67
+ /** Ověří přesnou lease bez reaktivace stale owner cycle. */
68
+ function isCurrent() {
69
+ return active
70
+ && currentRecord.state === "active"
71
+ && currentRecord.cycle === cycle
72
+ && cycle.authoritative
73
+ && isEpochCurrent(epoch);
74
+ }
75
+ /** Idempotentně odebere právě jednu lease a případně zahájí grace. */
76
+ function release() {
77
+ if (!active) {
78
+ return;
79
+ }
80
+ active = false;
81
+ cycle.count -= 1;
82
+ if (currentRecord.state !== "active"
83
+ || currentRecord.cycle !== cycle
84
+ || cycle.count !== 0) {
85
+ return;
86
+ }
87
+ registry.#beginRecordGrace(currentRecord);
88
+ }
89
+ return Object.freeze({ id: currentRecord.id, epoch, isCurrent, release });
90
+ }
91
+ /** Synchronně zneplatní všechny capability jedné scope epochy před cleanupem. */
92
+ invalidateEpoch(epoch) {
93
+ for (const record of [...this.#records]) {
94
+ if (record.epoch === epoch && record.state === "active") {
95
+ this.#beginRecordGrace(record);
96
+ }
97
+ }
98
+ }
99
+ /** Terminálně odstraní všechny owner records jedné retired scope epochy. */
100
+ retireEpoch(epoch) {
101
+ for (const record of [...this.#records]) {
102
+ if (record.epoch === epoch) {
103
+ this.#retireRecord(record);
104
+ }
105
+ }
106
+ }
107
+ /** Zneplatní current cycle a naplánuje tokenově chráněný finalizer. */
108
+ #beginRecordGrace(record) {
109
+ if (record.state !== "active") {
110
+ return;
111
+ }
112
+ record.cycle.authoritative = false;
113
+ record.state = "grace";
114
+ record.finalizeToken += 1;
115
+ const finalizeToken = record.finalizeToken;
116
+ this.#scheduleMicrotask(() => {
117
+ if (record.state !== "grace" || record.finalizeToken !== finalizeToken) {
118
+ return;
119
+ }
120
+ this.#retireRecord(record);
121
+ });
122
+ }
123
+ /** Odstraní record z iterovatelné i weak token projekce. */
124
+ #retireRecord(record) {
125
+ if (record.state === "retired") {
126
+ return;
127
+ }
128
+ record.cycle.authoritative = false;
129
+ record.state = "retired";
130
+ record.finalizeToken += 1;
131
+ this.#records.delete(record);
132
+ if (this.#recordsByToken.get(record.token) === record) {
133
+ this.#recordsByToken.delete(record.token);
134
+ }
135
+ }
136
+ }
137
+ //# sourceMappingURL=outlet-commit-lease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlet-commit-lease.js","sourceRoot":"","sources":["../../src/internal/outlet-commit-lease.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import type * as contribKitCore from "@primafuture/contrib-kit-core";
2
+ import * as adapterConfiguration from "./adapter-configuration.js";
3
+ import * as outletInput from "./outlet-input.js";
4
+ import type * as contributionComponent from "../contribution-component.js";
5
+ import * as reactAdapterDiagnostics from "../react-adapter-diagnostics.js";
6
+ import type * as reactAdapterError from "../react-adapter-error.js";
7
+ import type * as reactExtensionPoint from "../react-extension-point.js";
8
+ /** Frozen capability doručená outlet `onError` callbacku. */
9
+ export interface OutletContributionErrorEmission {
10
+ /** Rozlišuje contribution failure od budoucí resolve větve. */
11
+ readonly kind: "contribution";
12
+ /** Tentýž frozen primary event použitý sinkem a policy. */
13
+ readonly error: reactAdapterDiagnostics.ReactAdapterErrorEvent;
14
+ /** Generation-bound recovery command bez registry capability. */
15
+ readonly retry: () => void;
16
+ }
17
+ /** Autoritativní výsledek committed contribution error pipeline. */
18
+ export type OutletPrimaryErrorDecision = {
19
+ /** Starý attempt byl reentrantně zneplatněn a nic dalšího nesmí publikovat. */
20
+ readonly kind: "stale";
21
+ } | {
22
+ /** Membership zůstane skrytá při zachování logical placementu sourozenců. */
23
+ readonly kind: "hide";
24
+ /** Frozen primary event dostupný internímu boundary state. */
25
+ readonly error: reactAdapterDiagnostics.ReactAdapterErrorEvent;
26
+ } | {
27
+ /** Host fallback se smí renderovat v oddělené reporter boundary. */
28
+ readonly kind: "renderFallback";
29
+ /** Frozen primary event dostupný fallback render state. */
30
+ readonly error: reactAdapterDiagnostics.ReactAdapterErrorEvent;
31
+ } | {
32
+ /** Přesný primary cause se má v příštím renderu eskalovat hostu. */
33
+ readonly kind: "escalate";
34
+ /** Frozen primary event zůstává diagnostickou evidencí. */
35
+ readonly error: reactAdapterDiagnostics.ReactAdapterErrorEvent;
36
+ /** Exact captured cause; nikdy structured wrapper. */
37
+ readonly cause: unknown;
38
+ };
39
+ /** Společná metadata jedné committed membership failure. */
40
+ export interface OutletErrorIdentity<Point extends reactExtensionPoint.AnyReactExtensionPoint> {
41
+ /** Opaque commit-owned boundary identita. */
42
+ readonly boundaryId: string;
43
+ /** Exact outlet context bez automatické diagnostické publikace. */
44
+ readonly context: contribKitCore.ExtensionPointContext<Point>;
45
+ /** Bezpečný public contribution view. */
46
+ readonly contribution: contributionComponent.ExtensionContributionView<contribKitCore.ExtensionPointData<Point>>;
47
+ /** Opaque commit-owned outlet identita. */
48
+ readonly outletId: string;
49
+ /** Exact canonical React point. */
50
+ readonly point: Point;
51
+ /** Opaque Core activation identita dostupná pouze boundary pipeline. */
52
+ readonly registrationId: string;
53
+ /** Monotonická membership retry generation. */
54
+ readonly retryGeneration: number;
55
+ }
56
+ /** Vstup primary contribution failure pipeline po React commit pointu. */
57
+ export interface OutletPrimaryErrorPipelineInput<Point extends reactExtensionPoint.AnyReactExtensionPoint> extends OutletErrorIdentity<Point> {
58
+ /** Stabilní adapter error code zdroje failure. */
59
+ readonly code: reactAdapterError.ReactAdapterErrorCode;
60
+ /** Effective scope/outlet diagnostic konfigurace. */
61
+ readonly configuration: adapterConfiguration.AdapterScopeConfiguration;
62
+ /** Přesný cizí nebo bezpečný syntetický cause. */
63
+ readonly cause: unknown;
64
+ /** Zda host poskytl oddělený contribution fallback renderer. */
65
+ readonly hasFallback: boolean;
66
+ /** `false` vypne contribution isolation bez volání policy. */
67
+ readonly isolateErrors: boolean;
68
+ /** Current authority checkpoint po každém user-observable kroku. */
69
+ readonly isCurrent: () => boolean;
70
+ /** Optional guarded outlet callback zachycený read-once. */
71
+ readonly onError: outletInput.CapturedOutletCallback<OutletContributionErrorEmission, unknown> | undefined;
72
+ /** Přesná adapter phase zdroje primary failure. */
73
+ readonly phase: reactAdapterError.ReactAdapterErrorPhase;
74
+ /** Normalizovaný React component stack, existuje-li. */
75
+ readonly reactComponentStack?: string;
76
+ /** Generation-bound retry command. */
77
+ readonly retry: () => void;
78
+ }
79
+ /** Vstup sink-only fallback reporteru bez policy nebo callback recursion. */
80
+ export interface OutletFallbackErrorInput<Point extends reactExtensionPoint.AnyReactExtensionPoint> extends OutletErrorIdentity<Point> {
81
+ /** Effective diagnostic konfigurace owning outletu. */
82
+ readonly configuration: adapterConfiguration.AdapterScopeConfiguration;
83
+ /** Exact fallback render cause eskalovaný hostu. */
84
+ readonly cause: unknown;
85
+ /** Ověří committed boundary/outlet autoritu před publikací. */
86
+ readonly isCurrent: () => boolean;
87
+ /** Normalizovaný React component stack, existuje-li. */
88
+ readonly reactComponentStack?: string;
89
+ }
90
+ /** Frozen committed event jednoho accepted retry. */
91
+ export interface OutletRetryEvent {
92
+ /** Opaque committed boundary identita. */
93
+ readonly boundaryId: string;
94
+ /** Veřejná contribution identita bez dat. */
95
+ readonly contributionId: string;
96
+ /** Opaque committed outlet identita. */
97
+ readonly outletId: string;
98
+ /** Veřejná point identita. */
99
+ readonly pointId: string;
100
+ /** Opaque Core activation identita. */
101
+ readonly registrationId: string;
102
+ /** Nově committed retry generation. */
103
+ readonly retryGeneration: number;
104
+ }
105
+ /** Vstup guarded onRetry callbacku po commitu nové generation. */
106
+ export interface OutletRetryCallbackInput<Point extends reactExtensionPoint.AnyReactExtensionPoint> extends OutletErrorIdentity<Point> {
107
+ /** Effective sink pro případ callback failure. */
108
+ readonly configuration: adapterConfiguration.AdapterScopeConfiguration;
109
+ /** Current generation authority. */
110
+ readonly isCurrent: () => boolean;
111
+ /** Optional read-once outlet callback. */
112
+ readonly onRetry: outletInput.CapturedOutletCallback<OutletRetryEvent, unknown> | undefined;
113
+ }
114
+ /** Spustí přesně seřazenou committed contribution error pipeline. */
115
+ export declare function runOutletPrimaryErrorPipeline<Point extends reactExtensionPoint.AnyReactExtensionPoint>(input: OutletPrimaryErrorPipelineInput<Point>): OutletPrimaryErrorDecision;
116
+ /** Reportuje fallback failure bez onError/policy recursion a vrátí exact cause. */
117
+ export declare function reportOutletFallbackError<Point extends reactExtensionPoint.AnyReactExtensionPoint>(input: OutletFallbackErrorInput<Point>): unknown;
118
+ /** Doručí committed retry event nejvýše jednou volajícímu boundary lifecycle. */
119
+ export declare function dispatchOutletRetryCallback<Point extends reactExtensionPoint.AnyReactExtensionPoint>(input: OutletRetryCallbackInput<Point>): void;
120
+ /** Normalizuje React component stack bez synthetic prázdného pole. */
121
+ export declare function normalizeReactComponentStack(value: unknown): string | undefined;
122
+ //# sourceMappingURL=outlet-error-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlet-error-pipeline.d.ts","sourceRoot":"","sources":["../../src/internal/outlet-error-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ import * as adapterConfiguration from "./adapter-configuration.js";
2
+ import * as outletInput from "./outlet-input.js";
3
+ import * as reactAdapterDiagnostics from "../react-adapter-diagnostics.js";
4
+ /** Vytvoří bezpečná contribution metadata bez čtení business data hodnoty. */
5
+ function createProjectedContributionMetadata(identity) {
6
+ const contribution = identity.contribution;
7
+ return Object.freeze({
8
+ registrationId: identity.registrationId,
9
+ contributionId: contribution.contributionId,
10
+ ...(contribution.contributorId === undefined
11
+ ? {}
12
+ : { contributorId: contribution.contributorId }),
13
+ ...(contribution.label === undefined ? {} : { label: contribution.label }),
14
+ ...(contribution.localName === undefined
15
+ ? {}
16
+ : { localName: contribution.localName }),
17
+ });
18
+ }
19
+ /** Vytvoří secondary event sdílející pouze bezpečné identity primary failure. */
20
+ function createSecondaryErrorEvent(input, code, phase, cause) {
21
+ const point = reactAdapterDiagnostics.createPointMetadata(input.point);
22
+ return reactAdapterDiagnostics.createReactAdapterErrorEvent({
23
+ boundaryId: input.boundaryId,
24
+ code,
25
+ cause,
26
+ contribution: createProjectedContributionMetadata(input),
27
+ outletId: input.outletId,
28
+ phase,
29
+ ...(point === undefined ? {} : { point }),
30
+ retryGeneration: input.retryGeneration,
31
+ });
32
+ }
33
+ /** Publikuje secondary diagnostiku bez callback nebo policy recursion. */
34
+ function reportSecondaryFailure(input, code, phase, cause) {
35
+ const error = createSecondaryErrorEvent(input, code, phase, cause);
36
+ reactAdapterDiagnostics.reportReactAdapterDiagnostic(reactAdapterDiagnostics.createErrorDiagnostic(error), input.configuration);
37
+ }
38
+ /** Bezpečně spotřebuje callback return a reportuje nejvýše jednu rejection. */
39
+ function consumeCallbackResult(result, input) {
40
+ let reported = false;
41
+ /** Přeloží právě jednu current callback failure na sink-only diagnostiku. */
42
+ function reportCallbackFailure(cause) {
43
+ if (reported || !input.isCurrent()) {
44
+ return;
45
+ }
46
+ reported = true;
47
+ reportSecondaryFailure(input, "REACT_CALLBACK_FAILED", "callback", cause);
48
+ }
49
+ try {
50
+ void Promise.resolve(result).catch(reportCallbackFailure);
51
+ }
52
+ catch (cause) {
53
+ reportCallbackFailure(cause);
54
+ }
55
+ }
56
+ /** Zavolá guarded outlet callback s undefined receiverem a bezpečnou finalitou. */
57
+ function callGuardedOutletCallback(callback, argument, input) {
58
+ let result;
59
+ try {
60
+ result = outletInput.callCapturedOutletCallback(callback, argument);
61
+ }
62
+ catch (cause) {
63
+ if (input.isCurrent()) {
64
+ reportSecondaryFailure(input, "REACT_CALLBACK_FAILED", "callback", cause);
65
+ }
66
+ return;
67
+ }
68
+ consumeCallbackResult(result, input);
69
+ }
70
+ /** Pure-synchronně projektuje context a případné selhání publikuje před primary. */
71
+ function projectPrimaryContext(input) {
72
+ const projector = input.configuration.projectContext;
73
+ if (projector === undefined) {
74
+ return Object.freeze({ hasProjection: false });
75
+ }
76
+ try {
77
+ const projection = Reflect.apply(projector, undefined, [input.context]);
78
+ return Object.freeze({ hasProjection: true, projection });
79
+ }
80
+ catch (cause) {
81
+ if (input.isCurrent()) {
82
+ reportSecondaryFailure(input, "REACT_CONTEXT_PROJECTION_FAILED", "projection", cause);
83
+ }
84
+ return Object.freeze({ hasProjection: false });
85
+ }
86
+ }
87
+ /** Vytvoří primary event po jediné pure context projection. */
88
+ function createPrimaryErrorEvent(input, projection) {
89
+ const point = reactAdapterDiagnostics.createPointMetadata(input.point);
90
+ return reactAdapterDiagnostics.createReactAdapterErrorEvent({
91
+ boundaryId: input.boundaryId,
92
+ code: input.code,
93
+ cause: input.cause,
94
+ contribution: createProjectedContributionMetadata(input),
95
+ outletId: input.outletId,
96
+ phase: input.phase,
97
+ ...(point === undefined ? {} : { point }),
98
+ ...(input.reactComponentStack === undefined
99
+ ? {}
100
+ : { reactComponentStack: input.reactComponentStack }),
101
+ retryGeneration: input.retryGeneration,
102
+ ...(projection.hasProjection
103
+ ? { contextProjection: projection.projection, hasContextProjection: true }
104
+ : {}),
105
+ });
106
+ }
107
+ /** Vyhodnotí captured nebo package-default contribution policy. */
108
+ function evaluateErrorPolicy(input, error) {
109
+ const policy = input.configuration.errorPolicy;
110
+ if (policy === undefined) {
111
+ return input.hasFallback ? "renderFallback" : "hide";
112
+ }
113
+ let action;
114
+ try {
115
+ action = Reflect.apply(policy, undefined, [error]);
116
+ }
117
+ catch (cause) {
118
+ reportSecondaryFailure(input, "REACT_ERROR_POLICY_FAILED", "policy", cause);
119
+ return undefined;
120
+ }
121
+ if (action !== "hide" && action !== "renderFallback" && action !== "escalate") {
122
+ reportSecondaryFailure(input, "REACT_ERROR_POLICY_FAILED", "policy", new TypeError("React error policy returned an unsupported action."));
123
+ return undefined;
124
+ }
125
+ return action;
126
+ }
127
+ /** Spustí přesně seřazenou committed contribution error pipeline. */
128
+ export function runOutletPrimaryErrorPipeline(input) {
129
+ if (!input.isCurrent()) {
130
+ return Object.freeze({ kind: "stale" });
131
+ }
132
+ const projection = projectPrimaryContext(input);
133
+ if (!input.isCurrent()) {
134
+ return Object.freeze({ kind: "stale" });
135
+ }
136
+ const error = createPrimaryErrorEvent(input, projection);
137
+ reactAdapterDiagnostics.reportReactAdapterDiagnostic(reactAdapterDiagnostics.createErrorDiagnostic(error), input.configuration);
138
+ if (!input.isCurrent()) {
139
+ return Object.freeze({ kind: "stale" });
140
+ }
141
+ if (input.onError !== undefined) {
142
+ const emission = Object.freeze({
143
+ kind: "contribution",
144
+ error,
145
+ retry: input.retry,
146
+ });
147
+ callGuardedOutletCallback(input.onError, emission, input);
148
+ if (!input.isCurrent()) {
149
+ return Object.freeze({ kind: "stale" });
150
+ }
151
+ }
152
+ if (!input.isolateErrors) {
153
+ return Object.freeze({ kind: "escalate", error, cause: input.cause });
154
+ }
155
+ const action = evaluateErrorPolicy(input, error);
156
+ if (!input.isCurrent()) {
157
+ return Object.freeze({ kind: "stale" });
158
+ }
159
+ if (action === undefined || action === "escalate") {
160
+ return Object.freeze({ kind: "escalate", error, cause: input.cause });
161
+ }
162
+ if (action === "renderFallback") {
163
+ return input.hasFallback
164
+ ? Object.freeze({ kind: "renderFallback", error })
165
+ : Object.freeze({ kind: "escalate", error, cause: input.cause });
166
+ }
167
+ return Object.freeze({ kind: "hide", error });
168
+ }
169
+ /** Reportuje fallback failure bez onError/policy recursion a vrátí exact cause. */
170
+ export function reportOutletFallbackError(input) {
171
+ if (!input.isCurrent()) {
172
+ return input.cause;
173
+ }
174
+ const point = reactAdapterDiagnostics.createPointMetadata(input.point);
175
+ const event = reactAdapterDiagnostics.createReactAdapterErrorEvent({
176
+ boundaryId: input.boundaryId,
177
+ code: "REACT_RENDER_FAILED",
178
+ cause: input.cause,
179
+ contribution: createProjectedContributionMetadata(input),
180
+ outletId: input.outletId,
181
+ phase: "fallback",
182
+ ...(point === undefined ? {} : { point }),
183
+ ...(input.reactComponentStack === undefined
184
+ ? {}
185
+ : { reactComponentStack: input.reactComponentStack }),
186
+ retryGeneration: input.retryGeneration,
187
+ });
188
+ reactAdapterDiagnostics.reportReactAdapterDiagnostic(reactAdapterDiagnostics.createErrorDiagnostic(event), input.configuration);
189
+ return input.cause;
190
+ }
191
+ /** Doručí committed retry event nejvýše jednou volajícímu boundary lifecycle. */
192
+ export function dispatchOutletRetryCallback(input) {
193
+ if (input.onRetry === undefined || !input.isCurrent()) {
194
+ return;
195
+ }
196
+ const event = Object.freeze({
197
+ boundaryId: input.boundaryId,
198
+ contributionId: input.contribution.contributionId,
199
+ outletId: input.outletId,
200
+ pointId: input.point.pointId,
201
+ registrationId: input.registrationId,
202
+ retryGeneration: input.retryGeneration,
203
+ });
204
+ callGuardedOutletCallback(input.onRetry, event, input);
205
+ }
206
+ /** Normalizuje React component stack bez synthetic prázdného pole. */
207
+ export function normalizeReactComponentStack(value) {
208
+ if (typeof value !== "string") {
209
+ return undefined;
210
+ }
211
+ const normalized = value.replaceAll("\r\n", "\n").trim();
212
+ return normalized.length === 0 ? undefined : normalized;
213
+ }
214
+ //# sourceMappingURL=outlet-error-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlet-error-pipeline.js","sourceRoot":"","sources":["../../src/internal/outlet-error-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type * as contribKitCore from "@primafuture/contrib-kit-core";
2
+ import type * as react from "react";
3
+ import * as adapterConfiguration from "./adapter-configuration.js";
4
+ import type * as reactExtensionPoint from "../react-extension-point.js";
5
+ /** Interní render callback zachycený bez změny původní reference. */
6
+ export type CapturedOutletCallback<Argument, Result> = (argument: Argument) => Result;
7
+ /** Immutable read-once vstup budoucího headless outletu. */
8
+ export interface CapturedOutletInput<Point extends reactExtensionPoint.AnyReactExtensionPoint> {
9
+ /** Exact canonical point předaný budoucímu resolved hooku. */
10
+ readonly point: Point;
11
+ /** Point-specific context zachycený pro jeden render attempt. */
12
+ readonly context: contribKitCore.ExtensionPointContext<Point>;
13
+ /** Explicitní nebo inherited raw registry vstup bez vzniklé subscription. */
14
+ readonly registry: unknown;
15
+ /** Zda budoucí membership boundary izoluje contribution render chyby. */
16
+ readonly isolateErrors: boolean;
17
+ /** Efektivní outlet-local konfigurace se zachovaným provider inheritance. */
18
+ readonly configuration: adapterConfiguration.AdapterScopeConfiguration;
19
+ /** Optional custom renderer ready membershipu. */
20
+ readonly renderContribution: CapturedOutletCallback<unknown, react.ReactNode> | undefined;
21
+ /** Optional custom renderer loading membershipu. */
22
+ readonly renderLoading: CapturedOutletCallback<unknown, react.ReactNode> | undefined;
23
+ /** Optional custom renderer contribution failure. */
24
+ readonly renderContributionError: CapturedOutletCallback<unknown, react.ReactNode> | undefined;
25
+ /** Optional custom renderer úspěšného prázdného výsledku. */
26
+ readonly renderEmpty: CapturedOutletCallback<unknown, react.ReactNode> | undefined;
27
+ /** Optional custom renderer resolve failure. */
28
+ readonly renderResolveError: CapturedOutletCallback<unknown, react.ReactNode> | undefined;
29
+ /** Optional callback budoucího committed error emission. */
30
+ readonly onError: CapturedOutletCallback<unknown, unknown> | undefined;
31
+ /** Optional callback budoucího committed retry eventu. */
32
+ readonly onRetry: CapturedOutletCallback<unknown, unknown> | undefined;
33
+ }
34
+ /** Lifecycle checkpoint mezi user-observable capture kroky. */
35
+ export type OutletInputCaptureCheckpoint = () => void;
36
+ /**
37
+ * Zachytí budoucí outlet props v normativním pořadí bez vytvoření resource.
38
+ */
39
+ export declare function captureOutletInput<Point extends reactExtensionPoint.AnyReactExtensionPoint>(props: object, inheritedRegistry: unknown | undefined, inheritedConfiguration: adapterConfiguration.AdapterScopeConfiguration | undefined, checkpoint?: OutletInputCaptureCheckpoint): CapturedOutletInput<Point>;
40
+ /** Zavolá již zachycený outlet callback vždy s `undefined` receiverem. */
41
+ export declare function callCapturedOutletCallback<Argument, Result>(callback: CapturedOutletCallback<Argument, Result>, argument: Argument): Result;
42
+ //# sourceMappingURL=outlet-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlet-input.d.ts","sourceRoot":"","sources":["../../src/internal/outlet-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,cAAc,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAC;AAGnE,OAAO,KAAK,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAExE,qEAAqE;AACrE,MAAM,MAAM,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;AAEtF,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB,CACnC,KAAK,SAAS,mBAAmB,CAAC,sBAAsB;IAExD,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9D,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,yBAAyB,CAAC;IACvE,kDAAkD;IAClD,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC1F,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACrF,qDAAqD;IACrD,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/F,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACnF,gDAAgD;IAChD,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC1F,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACvE,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACvE;AAED,+DAA+D;AAC/D,MAAM,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC;AA8DtD;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,SAAS,mBAAmB,CAAC,sBAAsB,EAExD,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,GAAG,SAAS,EACtC,sBAAsB,EAAE,oBAAoB,CAAC,yBAAyB,GAAG,SAAS,EAClF,UAAU,GAAE,4BAA+D,GACzE,mBAAmB,CAAC,KAAK,CAAC,CA6I5B;AAED,0EAA0E;AAC1E,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAC1D,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAClD,QAAQ,EAAE,QAAQ,GAChB,MAAM,CAER"}
@@ -0,0 +1,86 @@
1
+ import * as adapterConfiguration from "./adapter-configuration.js";
2
+ import * as publicInputCapture from "./public-input-capture.js";
3
+ import * as reactAdapterError from "../react-adapter-error.js";
4
+ /** Výchozí resource-free checkpoint interního čistého capture. */
5
+ function skipOutletInputCaptureCheckpoint() {
6
+ // Volající bez lifecycle autority nepotřebuje další gate.
7
+ }
8
+ /** Ověří exact point jako non-null objekt bez čtení jeho polí. */
9
+ function requireOutletPoint(value) {
10
+ if (typeof value !== "object" || value === null) {
11
+ throw new reactAdapterError.ReactAdapterError("REACT_INVALID_ARGUMENT", "props.point must be a non-null object.", { details: { field: "props.point", phase: "configuration" } });
12
+ }
13
+ return value;
14
+ }
15
+ /** Normalizuje optional isolate flag bez truthy/falsy coercion. */
16
+ function captureIsolateErrors(value) {
17
+ if (value === undefined) {
18
+ return true;
19
+ }
20
+ if (typeof value !== "boolean") {
21
+ return publicInputCapture.throwInvalidCapturedArgument("props.isolateErrors", "props.isolateErrors must be a boolean when provided.");
22
+ }
23
+ return value;
24
+ }
25
+ /** Ověří optional outlet callback bez jeho zavolání nebo přebalení. */
26
+ function captureOptionalOutletCallback(value, field) {
27
+ if (value === undefined) {
28
+ return undefined;
29
+ }
30
+ if (typeof value !== "function") {
31
+ return publicInputCapture.throwInvalidCapturedArgument(`props.${field}`, `props.${field} must be callable when provided.`);
32
+ }
33
+ return value;
34
+ }
35
+ /**
36
+ * Zachytí budoucí outlet props v normativním pořadí bez vytvoření resource.
37
+ */
38
+ export function captureOutletInput(props, inheritedRegistry, inheritedConfiguration, checkpoint = skipOutletInputCaptureCheckpoint) {
39
+ const source = publicInputCapture.requireInputObject(props, "props");
40
+ const pointValue = publicInputCapture.readInputProperty(source, "point", "props.point", checkpoint);
41
+ const context = publicInputCapture.readInputProperty(source, "context", "props.context", checkpoint);
42
+ const registryValue = publicInputCapture.readInputProperty(source, "registry", "props.registry", checkpoint);
43
+ const isolateErrorsValue = publicInputCapture.readInputProperty(source, "isolateErrors", "props.isolateErrors", checkpoint);
44
+ const sinkValue = publicInputCapture.readInputProperty(source, "sink", "props.sink", checkpoint);
45
+ const errorPolicyValue = publicInputCapture.readInputProperty(source, "errorPolicy", "props.errorPolicy", checkpoint);
46
+ const projectContextValue = publicInputCapture.readInputProperty(source, "projectContext", "props.projectContext", checkpoint);
47
+ const renderContributionValue = publicInputCapture.readInputProperty(source, "renderContribution", "props.renderContribution", checkpoint);
48
+ const renderLoadingValue = publicInputCapture.readInputProperty(source, "renderLoading", "props.renderLoading", checkpoint);
49
+ const renderContributionErrorValue = publicInputCapture.readInputProperty(source, "renderContributionError", "props.renderContributionError", checkpoint);
50
+ const renderEmptyValue = publicInputCapture.readInputProperty(source, "renderEmpty", "props.renderEmpty", checkpoint);
51
+ const renderResolveErrorValue = publicInputCapture.readInputProperty(source, "renderResolveError", "props.renderResolveError", checkpoint);
52
+ const onErrorValue = publicInputCapture.readInputProperty(source, "onError", "props.onError", checkpoint);
53
+ const onRetryValue = publicInputCapture.readInputProperty(source, "onRetry", "props.onRetry", checkpoint);
54
+ const point = requireOutletPoint(pointValue);
55
+ const isolateErrors = captureIsolateErrors(isolateErrorsValue);
56
+ const registry = adapterConfiguration.resolveAdapterRegistryInput(registryValue, inheritedRegistry);
57
+ const patch = adapterConfiguration.captureAdapterConfigurationPatch(sinkValue, errorPolicyValue, projectContextValue, checkpoint);
58
+ const configuration = adapterConfiguration.resolveAdapterScopeConfiguration(inheritedConfiguration, patch);
59
+ const renderContribution = captureOptionalOutletCallback(renderContributionValue, "renderContribution");
60
+ const renderLoading = captureOptionalOutletCallback(renderLoadingValue, "renderLoading");
61
+ const renderContributionError = captureOptionalOutletCallback(renderContributionErrorValue, "renderContributionError");
62
+ const renderEmpty = captureOptionalOutletCallback(renderEmptyValue, "renderEmpty");
63
+ const renderResolveError = captureOptionalOutletCallback(renderResolveErrorValue, "renderResolveError");
64
+ const onError = captureOptionalOutletCallback(onErrorValue, "onError");
65
+ const onRetry = captureOptionalOutletCallback(onRetryValue, "onRetry");
66
+ checkpoint();
67
+ return Object.freeze({
68
+ point,
69
+ context,
70
+ registry,
71
+ isolateErrors,
72
+ configuration,
73
+ renderContribution,
74
+ renderLoading,
75
+ renderContributionError,
76
+ renderEmpty,
77
+ renderResolveError,
78
+ onError,
79
+ onRetry,
80
+ });
81
+ }
82
+ /** Zavolá již zachycený outlet callback vždy s `undefined` receiverem. */
83
+ export function callCapturedOutletCallback(callback, argument) {
84
+ return Reflect.apply(callback, undefined, [argument]);
85
+ }
86
+ //# sourceMappingURL=outlet-input.js.map