@vsaas/remoting 10.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 (109) hide show
  1. package/LICENSE.md +202 -0
  2. package/README.md +78 -0
  3. package/dist/_virtual/_rolldown/runtime.js +32 -0
  4. package/dist/ext/meta.d.ts +1 -0
  5. package/dist/ext/meta.js +39 -0
  6. package/dist/ext/meta.js.map +1 -0
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +20 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/context-base.d.ts +1 -0
  11. package/dist/lib/context-base.js +30 -0
  12. package/dist/lib/context-base.js.map +1 -0
  13. package/dist/lib/deprecate.d.ts +1 -0
  14. package/dist/lib/deprecate.js +34 -0
  15. package/dist/lib/deprecate.js.map +1 -0
  16. package/dist/lib/escape-regexp.d.ts +1 -0
  17. package/dist/lib/escape-regexp.js +12 -0
  18. package/dist/lib/escape-regexp.js.map +1 -0
  19. package/dist/lib/exports-helper.d.ts +1 -0
  20. package/dist/lib/exports-helper.js +101 -0
  21. package/dist/lib/exports-helper.js.map +1 -0
  22. package/dist/lib/http-context.d.ts +1 -0
  23. package/dist/lib/http-context.js +484 -0
  24. package/dist/lib/http-context.js.map +1 -0
  25. package/dist/lib/http-invocation.d.ts +1 -0
  26. package/dist/lib/http-invocation.js +254 -0
  27. package/dist/lib/http-invocation.js.map +1 -0
  28. package/dist/lib/jsonrpc-adapter.d.ts +1 -0
  29. package/dist/lib/jsonrpc-adapter.js +187 -0
  30. package/dist/lib/jsonrpc-adapter.js.map +1 -0
  31. package/dist/lib/looks-like-json.d.ts +1 -0
  32. package/dist/lib/looks-like-json.js +22 -0
  33. package/dist/lib/looks-like-json.js.map +1 -0
  34. package/dist/lib/messages.d.ts +1 -0
  35. package/dist/lib/messages.js +24 -0
  36. package/dist/lib/messages.js.map +1 -0
  37. package/dist/lib/number-checks.d.ts +1 -0
  38. package/dist/lib/number-checks.js +18 -0
  39. package/dist/lib/number-checks.js.map +1 -0
  40. package/dist/lib/phases/merge-phase-name-lists.d.ts +5 -0
  41. package/dist/lib/phases/merge-phase-name-lists.d.ts.map +1 -0
  42. package/dist/lib/phases/merge-phase-name-lists.js +39 -0
  43. package/dist/lib/phases/merge-phase-name-lists.js.map +1 -0
  44. package/dist/lib/phases/phase-list.d.ts +27 -0
  45. package/dist/lib/phases/phase-list.d.ts.map +1 -0
  46. package/dist/lib/phases/phase-list.js +154 -0
  47. package/dist/lib/phases/phase-list.js.map +1 -0
  48. package/dist/lib/phases/phase.d.ts +24 -0
  49. package/dist/lib/phases/phase.d.ts.map +1 -0
  50. package/dist/lib/phases/phase.js +144 -0
  51. package/dist/lib/phases/phase.js.map +1 -0
  52. package/dist/lib/remote-objects.d.ts +1 -0
  53. package/dist/lib/remote-objects.js +642 -0
  54. package/dist/lib/remote-objects.js.map +1 -0
  55. package/dist/lib/rest-adapter-browser.d.ts +1 -0
  56. package/dist/lib/rest-adapter-browser.js +302 -0
  57. package/dist/lib/rest-adapter-browser.js.map +1 -0
  58. package/dist/lib/rest-adapter.d.ts +1 -0
  59. package/dist/lib/rest-adapter.js +519 -0
  60. package/dist/lib/rest-adapter.js.map +1 -0
  61. package/dist/lib/server-sent-events.d.ts +1 -0
  62. package/dist/lib/server-sent-events.js +61 -0
  63. package/dist/lib/server-sent-events.js.map +1 -0
  64. package/dist/lib/shared-class.d.ts +1 -0
  65. package/dist/lib/shared-class.js +207 -0
  66. package/dist/lib/shared-class.js.map +1 -0
  67. package/dist/lib/shared-method.d.ts +1 -0
  68. package/dist/lib/shared-method.js +469 -0
  69. package/dist/lib/shared-method.js.map +1 -0
  70. package/dist/lib/socket-io-adapter.d.ts +1 -0
  71. package/dist/lib/socket-io-adapter.js +93 -0
  72. package/dist/lib/socket-io-adapter.js.map +1 -0
  73. package/dist/lib/socket-io-context.d.ts +1 -0
  74. package/dist/lib/socket-io-context.js +94 -0
  75. package/dist/lib/socket-io-context.js.map +1 -0
  76. package/dist/lib/type-registry.d.ts +1 -0
  77. package/dist/lib/type-registry.js +99 -0
  78. package/dist/lib/type-registry.js.map +1 -0
  79. package/dist/lib/types/any.d.ts +1 -0
  80. package/dist/lib/types/any.js +44 -0
  81. package/dist/lib/types/any.js.map +1 -0
  82. package/dist/lib/types/array.d.ts +1 -0
  83. package/dist/lib/types/array.js +99 -0
  84. package/dist/lib/types/array.js.map +1 -0
  85. package/dist/lib/types/boolean.d.ts +1 -0
  86. package/dist/lib/types/boolean.js +37 -0
  87. package/dist/lib/types/boolean.js.map +1 -0
  88. package/dist/lib/types/date.d.ts +1 -0
  89. package/dist/lib/types/date.js +37 -0
  90. package/dist/lib/types/date.js.map +1 -0
  91. package/dist/lib/types/geopoint.d.ts +1 -0
  92. package/dist/lib/types/geopoint.js +68 -0
  93. package/dist/lib/types/geopoint.js.map +1 -0
  94. package/dist/lib/types/integer.d.ts +1 -0
  95. package/dist/lib/types/integer.js +36 -0
  96. package/dist/lib/types/integer.js.map +1 -0
  97. package/dist/lib/types/number.d.ts +1 -0
  98. package/dist/lib/types/number.js +30 -0
  99. package/dist/lib/types/number.js.map +1 -0
  100. package/dist/lib/types/object.d.ts +1 -0
  101. package/dist/lib/types/object.js +57 -0
  102. package/dist/lib/types/object.js.map +1 -0
  103. package/dist/lib/types/string.d.ts +1 -0
  104. package/dist/lib/types/string.js +29 -0
  105. package/dist/lib/types/string.js.map +1 -0
  106. package/dist/phases.d.ts +4 -0
  107. package/dist/phases.js +35 -0
  108. package/dist/phases.js.map +1 -0
  109. package/package.json +96 -0
@@ -0,0 +1,27 @@
1
+ import { Phase, PhaseCallback, PhaseHandler } from "./phase.js";
2
+
3
+ //#region src/lib/phases/phase-list.d.ts
4
+ declare class PhaseList<TContext = unknown> {
5
+ private _phases;
6
+ private _phaseMap;
7
+ constructor();
8
+ first(): Phase<TContext>;
9
+ last(): Phase<TContext>;
10
+ add(phase: Phase<TContext> | string | string[]): Phase<TContext> | Phase<TContext>[];
11
+ addAt(index: number, phase: Phase<TContext> | string): Phase<TContext>;
12
+ addAfter(after: string, phase: Phase<TContext> | string): Phase<TContext>;
13
+ addBefore(before: string, phase: Phase<TContext> | string): Phase<TContext>;
14
+ remove(phase: Phase<TContext> | string | null | undefined): Phase<TContext>;
15
+ zipMerge(names: string[]): void;
16
+ find(id: string): Phase<TContext>;
17
+ findOrAdd(id: string): Phase<TContext> | Phase<TContext>[];
18
+ toArray(): Phase<TContext>[];
19
+ run(ctx?: TContext | PhaseCallback, cb?: PhaseCallback): Promise<void>;
20
+ getPhaseNames(): string[];
21
+ registerHandler(phaseName: string, handler: PhaseHandler<TContext>): void;
22
+ private indexOfPhase;
23
+ private _resolveNameAndAddToMap;
24
+ }
25
+ //#endregion
26
+ export { PhaseList };
27
+ //# sourceMappingURL=phase-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-list.d.ts","names":[],"sources":["../../../src/lib/phases/phase-list.ts"],"mappings":";;;cAUa,SAAA;EAAA,QACH,OAAA;EAAA,QACA,SAAA;;EAOR,KAAA,CAAA,GAAK,KAAA,CAAA,QAAA;EAIL,IAAA,CAAA,GAAI,KAAA,CAAA,QAAA;EAIJ,GAAA,CAAI,KAAA,EAAO,KAAA,CAAM,QAAA,wBAA6B,KAAA,CAAA,QAAA,IAAA,KAAA,CAAA,QAAA;EAc9C,KAAA,CAAM,KAAA,UAAe,KAAA,EAAO,KAAA,CAAM,QAAA,aAAkB,KAAA,CAAA,QAAA;EAMpD,QAAA,CAAS,KAAA,UAAe,KAAA,EAAO,KAAA,CAAM,QAAA,aAAkB,KAAA,CAAA,QAAA;EASvD,SAAA,CAAU,MAAA,UAAgB,KAAA,EAAO,KAAA,CAAM,QAAA,aAAkB,KAAA,CAAA,QAAA;EASzD,MAAA,CAAO,KAAA,EAAO,KAAA,CAAM,QAAA,gCAAqC,KAAA,CAAA,QAAA;EAuBzD,QAAA,CAAS,KAAA;EAkBT,IAAA,CAAK,EAAA,WAAU,KAAA,CAAA,QAAA;EAIf,SAAA,CAAU,EAAA,WAAU,KAAA,CAAA,QAAA,IAAA,KAAA,CAAA,QAAA;EAIpB,OAAA,CAAA,GAAO,KAAA,CAAA,QAAA;EAIP,GAAA,CAAI,GAAA,GAAM,QAAA,GAAW,aAAA,EAAe,EAAA,GAAK,aAAA,GAAa,OAAA;EAsBtD,aAAA,CAAA;EAQA,eAAA,CAAgB,SAAA,UAAmB,OAAA,EAAS,YAAA,CAAa,QAAA;EAAA,QAiBjD,YAAA;EAAA,QAUA,uBAAA;AAAA"}
@@ -0,0 +1,154 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
3
+ const require_lib_messages = require("../messages.js");
4
+ const require_lib_phases_merge_phase_name_lists = require("./merge-phase-name-lists.js");
5
+ const require_lib_phases_phase = require("./phase.js");
6
+ //#region src/lib/phases/phase-list.ts
7
+ function runPhaseList(phases, ctx, done) {
8
+ if (phases.length === 0) {
9
+ process.nextTick(done);
10
+ return;
11
+ }
12
+ let index = 0;
13
+ function next(error) {
14
+ if (error) {
15
+ done(error);
16
+ return;
17
+ }
18
+ if (index >= phases.length) {
19
+ done();
20
+ return;
21
+ }
22
+ phases[index++].run(ctx, next);
23
+ }
24
+ next();
25
+ }
26
+ var f, PhaseList;
27
+ var init_phase_list = require_runtime.__esmMin((() => {
28
+ require_lib_phases_merge_phase_name_lists.init_merge_phase_name_lists();
29
+ require_lib_phases_phase.init_phase();
30
+ ({f} = require_lib_messages);
31
+ PhaseList = class {
32
+ _phases;
33
+ _phaseMap;
34
+ constructor() {
35
+ this._phases = [];
36
+ this._phaseMap = Object.create(null);
37
+ }
38
+ first() {
39
+ return this._phases[0];
40
+ }
41
+ last() {
42
+ return this._phases[this._phases.length - 1];
43
+ }
44
+ add(phase) {
45
+ if (Array.isArray(phase)) {
46
+ const added = Array.from({ length: phase.length });
47
+ for (let index = 0; index < phase.length; index += 1) added[index] = this.add(phase[index]);
48
+ return added;
49
+ }
50
+ const resolved = this._resolveNameAndAddToMap(phase);
51
+ this._phases.push(resolved);
52
+ return resolved;
53
+ }
54
+ addAt(index, phase) {
55
+ const resolved = this._resolveNameAndAddToMap(phase);
56
+ this._phases.splice(index, 0, resolved);
57
+ return resolved;
58
+ }
59
+ addAfter(after, phase) {
60
+ const index = this.indexOfPhase(after);
61
+ if (index === -1) throw new Error(f("Unknown phase: %s", after));
62
+ return this.addAt(index + 1, phase);
63
+ }
64
+ addBefore(before, phase) {
65
+ const index = this.indexOfPhase(before);
66
+ if (index === -1) throw new Error(f("Unknown phase: %s", before));
67
+ return this.addAt(index, phase);
68
+ }
69
+ remove(phase) {
70
+ if (!phase) return null;
71
+ const phaseId = typeof phase === "object" ? phase.id : phase;
72
+ const resolved = typeof phase === "object" ? phase : this._phaseMap[phaseId];
73
+ if (!resolved || !resolved.__isPhase__) return null;
74
+ const index = this._phases.indexOf(resolved);
75
+ if (index === -1) return null;
76
+ this._phases.splice(index, 1);
77
+ delete this._phaseMap[phaseId];
78
+ return resolved;
79
+ }
80
+ zipMerge(names) {
81
+ if (!names.length) return;
82
+ const mergedNames = require_lib_phases_merge_phase_name_lists.mergePhaseNameLists(this.getPhaseNames(), names);
83
+ const mergedPhases = Array.from({ length: mergedNames.length });
84
+ for (let index = 0; index < mergedNames.length; index += 1) {
85
+ const name = mergedNames[index];
86
+ mergedPhases[index] = this.find(name) || this._resolveNameAndAddToMap(name);
87
+ }
88
+ this._phases = mergedPhases;
89
+ }
90
+ find(id) {
91
+ return this._phaseMap[id] || null;
92
+ }
93
+ findOrAdd(id) {
94
+ return this.find(id) || this.add(id);
95
+ }
96
+ toArray() {
97
+ return this._phases.slice();
98
+ }
99
+ run(ctx, cb) {
100
+ if (typeof ctx === "function") {
101
+ cb = ctx;
102
+ ctx = void 0;
103
+ }
104
+ if (typeof cb === "function") {
105
+ runPhaseList(this._phases, ctx, cb);
106
+ return;
107
+ }
108
+ return new Promise((resolve, reject) => {
109
+ runPhaseList(this._phases, ctx, function(error) {
110
+ if (error) reject(error);
111
+ else resolve();
112
+ });
113
+ });
114
+ }
115
+ getPhaseNames() {
116
+ const phaseNames = Array.from({ length: this._phases.length });
117
+ for (let index = 0; index < this._phases.length; index += 1) phaseNames[index] = this._phases[index].id;
118
+ return phaseNames;
119
+ }
120
+ registerHandler(phaseName, handler) {
121
+ let subphase = "use";
122
+ const match = phaseName.match(/^(.+):(before|after)$/);
123
+ if (match) {
124
+ phaseName = match[1];
125
+ subphase = match[2];
126
+ }
127
+ const phase = this.find(phaseName);
128
+ if (!phase) throw new Error(f("Unknown phase %s", phaseName));
129
+ phase[subphase](handler);
130
+ }
131
+ indexOfPhase(id) {
132
+ for (let index = 0; index < this._phases.length; index += 1) if (this._phases[index].id === id) return index;
133
+ return -1;
134
+ }
135
+ _resolveNameAndAddToMap(phaseOrName) {
136
+ const phase = typeof phaseOrName === "string" ? new require_lib_phases_phase.Phase(phaseOrName) : phaseOrName;
137
+ if (phase.id in this._phaseMap) throw new Error(f("Phase \"%s\" already exists.", phase.id));
138
+ if (!phase.__isPhase__) throw new Error(f("Cannot add a non phase object to a {{PhaseList}}"));
139
+ this._phaseMap[phase.id] = phase;
140
+ return phase;
141
+ }
142
+ };
143
+ }));
144
+ //#endregion
145
+ init_phase_list();
146
+ exports.PhaseList = PhaseList;
147
+ Object.defineProperty(exports, "init_phase_list", {
148
+ enumerable: true,
149
+ get: function() {
150
+ return init_phase_list;
151
+ }
152
+ });
153
+
154
+ //# sourceMappingURL=phase-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-list.js","names":["mergePhaseNameLists","Phase"],"sources":["../../../src/lib/phases/phase-list.ts"],"sourcesContent":["// Copyright IBM Corp. 2026. All Rights Reserved.\n// Node module: strong-remoting\n// This file is licensed under the Artistic License 2.0.\n// License text available at https://opensource.org/licenses/Artistic-2.0\n\nconst { f } = require('../messages');\n\nimport { mergePhaseNameLists } from './merge-phase-name-lists';\nimport { Phase, type PhaseCallback, type PhaseHandler } from './phase';\n\nexport class PhaseList<TContext = unknown> {\n private _phases: Phase<TContext>[];\n private _phaseMap: Record<string, Phase<TContext>>;\n\n constructor() {\n this._phases = [];\n this._phaseMap = Object.create(null);\n }\n\n first() {\n return this._phases[0];\n }\n\n last() {\n return this._phases[this._phases.length - 1];\n }\n\n add(phase: Phase<TContext> | string | string[]) {\n if (Array.isArray(phase)) {\n const added = Array.from<Phase<TContext>>({ length: phase.length });\n for (let index = 0; index < phase.length; index += 1) {\n added[index] = this.add(phase[index]) as Phase<TContext>;\n }\n return added;\n }\n\n const resolved = this._resolveNameAndAddToMap(phase);\n this._phases.push(resolved);\n return resolved;\n }\n\n addAt(index: number, phase: Phase<TContext> | string) {\n const resolved = this._resolveNameAndAddToMap(phase);\n this._phases.splice(index, 0, resolved);\n return resolved;\n }\n\n addAfter(after: string, phase: Phase<TContext> | string) {\n const index = this.indexOfPhase(after);\n if (index === -1) {\n throw new Error(f('Unknown phase: %s', after));\n }\n\n return this.addAt(index + 1, phase);\n }\n\n addBefore(before: string, phase: Phase<TContext> | string) {\n const index = this.indexOfPhase(before);\n if (index === -1) {\n throw new Error(f('Unknown phase: %s', before));\n }\n\n return this.addAt(index, phase);\n }\n\n remove(phase: Phase<TContext> | string | null | undefined) {\n if (!phase) {\n return null;\n }\n\n const phaseId = typeof phase === 'object' ? phase.id : phase;\n const resolved = typeof phase === 'object' ? phase : this._phaseMap[phaseId];\n\n if (!resolved || !resolved.__isPhase__) {\n return null;\n }\n\n const index = this._phases.indexOf(resolved);\n if (index === -1) {\n return null;\n }\n\n this._phases.splice(index, 1);\n delete this._phaseMap[phaseId];\n\n return resolved;\n }\n\n zipMerge(names: string[]) {\n if (!names.length) {\n return;\n }\n\n const mergedNames = mergePhaseNameLists(this.getPhaseNames(), names);\n const mergedPhases = Array.from<Phase<TContext>>({\n length: mergedNames.length,\n });\n\n for (let index = 0; index < mergedNames.length; index += 1) {\n const name = mergedNames[index];\n mergedPhases[index] = this.find(name) || this._resolveNameAndAddToMap(name);\n }\n\n this._phases = mergedPhases;\n }\n\n find(id: string) {\n return this._phaseMap[id] || null;\n }\n\n findOrAdd(id: string) {\n return this.find(id) || this.add(id);\n }\n\n toArray() {\n return this._phases.slice();\n }\n\n run(ctx?: TContext | PhaseCallback, cb?: PhaseCallback) {\n if (typeof ctx === 'function') {\n cb = ctx as PhaseCallback;\n ctx = undefined;\n }\n\n if (typeof cb === 'function') {\n runPhaseList(this._phases, ctx as TContext | undefined, cb);\n return;\n }\n\n return new Promise<void>((resolve, reject) => {\n runPhaseList(this._phases, ctx as TContext | undefined, function (error) {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n\n getPhaseNames() {\n const phaseNames = Array.from<string>({ length: this._phases.length });\n for (let index = 0; index < this._phases.length; index += 1) {\n phaseNames[index] = this._phases[index].id as string;\n }\n return phaseNames;\n }\n\n registerHandler(phaseName: string, handler: PhaseHandler<TContext>) {\n let subphase = 'use';\n const match = phaseName.match(/^(.+):(before|after)$/);\n\n if (match) {\n phaseName = match[1];\n subphase = match[2];\n }\n\n const phase = this.find(phaseName);\n if (!phase) {\n throw new Error(f('Unknown phase %s', phaseName));\n }\n\n phase[subphase](handler);\n }\n\n private indexOfPhase(id: string) {\n for (let index = 0; index < this._phases.length; index += 1) {\n if (this._phases[index].id === id) {\n return index;\n }\n }\n\n return -1;\n }\n\n private _resolveNameAndAddToMap(phaseOrName: Phase<TContext> | string) {\n const phase = typeof phaseOrName === 'string' ? new Phase<TContext>(phaseOrName) : phaseOrName;\n\n if (phase.id in this._phaseMap) {\n throw new Error(f('Phase \"%s\" already exists.', phase.id));\n }\n\n if (!phase.__isPhase__) {\n throw new Error(f('Cannot add a non phase object to a {{PhaseList}}'));\n }\n\n this._phaseMap[phase.id as string] = phase;\n return phase;\n }\n}\n\nfunction runPhaseList<TContext>(\n phases: Phase<TContext>[],\n ctx: TContext | undefined,\n done: PhaseCallback,\n) {\n if (phases.length === 0) {\n process.nextTick(done);\n return;\n }\n\n let index = 0;\n\n function next(error?: unknown) {\n if (error) {\n done(error);\n return;\n }\n\n if (index >= phases.length) {\n done();\n return;\n }\n\n phases[index++].run(ctx as TContext, next);\n }\n\n next();\n}\n"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ //#region src/lib/phases/phase.d.ts
2
+ type PhaseCallback = (error?: unknown) => void;
3
+ type PhaseHandler<TContext = unknown> = (context: TContext, next: PhaseCallback) => void | Promise<void>;
4
+ type PhaseOptions = {
5
+ id?: string;
6
+ parallel?: boolean;
7
+ };
8
+ declare class Phase<TContext = unknown> {
9
+ id?: string;
10
+ options: PhaseOptions;
11
+ handlers: PhaseHandler<TContext>[];
12
+ beforeHandlers: PhaseHandler<TContext>[];
13
+ afterHandlers: PhaseHandler<TContext>[];
14
+ __isPhase__: boolean;
15
+ constructor(id?: string | PhaseOptions, options?: PhaseOptions);
16
+ use(handler: PhaseHandler<TContext>): this;
17
+ before(handler: PhaseHandler<TContext>): this;
18
+ after(handler: PhaseHandler<TContext>): this;
19
+ run(ctx?: TContext | PhaseCallback, cb?: PhaseCallback): Promise<void>;
20
+ toString(): string;
21
+ }
22
+ //#endregion
23
+ export { Phase, PhaseCallback, PhaseHandler };
24
+ //# sourceMappingURL=phase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase.d.ts","names":[],"sources":["../../../src/lib/phases/phase.ts"],"mappings":";KAKY,aAAA,IAAiB,KAAA;AAAA,KACjB,YAAA,wBACV,OAAA,EAAS,QAAA,EACT,IAAA,EAAM,aAAA,YACI,OAAA;AAAA,KAEP,YAAA;EACH,EAAA;EACA,QAAA;AAAA;AAAA,cAGW,KAAA;EACX,EAAA;EACA,OAAA,EAAS,YAAA;EACT,QAAA,EAAU,YAAA,CAAa,QAAA;EACvB,cAAA,EAAgB,YAAA,CAAa,QAAA;EAC7B,aAAA,EAAe,YAAA,CAAa,QAAA;EAC5B,WAAA;cAEY,EAAA,YAAc,YAAA,EAAc,OAAA,GAAU,YAAA;EAclD,GAAA,CAAI,OAAA,EAAS,YAAA,CAAa,QAAA;EAK1B,MAAA,CAAO,OAAA,EAAS,YAAA,CAAa,QAAA;EAK7B,KAAA,CAAM,OAAA,EAAS,YAAA,CAAa,QAAA;EAK5B,GAAA,CAAI,GAAA,GAAM,QAAA,GAAW,aAAA,EAAe,EAAA,GAAK,aAAA,GAAa,OAAA;EAuBtD,QAAA,CAAA;AAAA"}
@@ -0,0 +1,144 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
3
+ //#region src/lib/phases/phase.ts
4
+ function runPhase(phase, ctx, done) {
5
+ const stages = [
6
+ phase.beforeHandlers,
7
+ phase.handlers,
8
+ phase.afterHandlers
9
+ ];
10
+ let stageIndex = 0;
11
+ function nextStage(error) {
12
+ if (error) {
13
+ done(error);
14
+ return;
15
+ }
16
+ if (stageIndex >= stages.length) {
17
+ done();
18
+ return;
19
+ }
20
+ runHandlers(stages[stageIndex++], phase.options.parallel === true, ctx, nextStage);
21
+ }
22
+ nextStage();
23
+ }
24
+ function runHandlers(handlers, isParallel, ctx, done) {
25
+ if (handlers.length === 0) {
26
+ done();
27
+ return;
28
+ }
29
+ if (isParallel) {
30
+ runHandlersInParallel(handlers, ctx, done);
31
+ return;
32
+ }
33
+ let index = 0;
34
+ function next(error) {
35
+ if (error) {
36
+ done(error);
37
+ return;
38
+ }
39
+ if (index >= handlers.length) {
40
+ done();
41
+ return;
42
+ }
43
+ invokeHandler(handlers[index++], ctx, next);
44
+ }
45
+ next();
46
+ }
47
+ function runHandlersInParallel(handlers, ctx, done) {
48
+ let pending = handlers.length;
49
+ let settled = false;
50
+ function finish(error) {
51
+ if (settled) return;
52
+ if (error) {
53
+ settled = true;
54
+ done(error);
55
+ return;
56
+ }
57
+ pending -= 1;
58
+ if (pending === 0) {
59
+ settled = true;
60
+ done();
61
+ }
62
+ }
63
+ for (let index = 0; index < handlers.length; index += 1) invokeHandler(handlers[index], ctx, finish);
64
+ }
65
+ function invokeHandler(handler, ctx, done) {
66
+ let settled = false;
67
+ function finish(error) {
68
+ if (settled) return;
69
+ settled = true;
70
+ done(error);
71
+ }
72
+ try {
73
+ const result = handler(ctx, finish);
74
+ if (result && typeof result.then === "function") result.then(() => finish(), (error) => finish(error));
75
+ } catch (error) {
76
+ finish(error);
77
+ }
78
+ }
79
+ var Phase;
80
+ var init_phase = require_runtime.__esmMin((() => {
81
+ Phase = class {
82
+ id;
83
+ options;
84
+ handlers;
85
+ beforeHandlers;
86
+ afterHandlers;
87
+ __isPhase__;
88
+ constructor(id, options) {
89
+ if (typeof id === "object" && options === void 0) {
90
+ options = id;
91
+ id = options.id;
92
+ }
93
+ this.id = id;
94
+ this.options = options || {};
95
+ this.handlers = [];
96
+ this.beforeHandlers = [];
97
+ this.afterHandlers = [];
98
+ this.__isPhase__ = true;
99
+ }
100
+ use(handler) {
101
+ this.handlers.push(handler);
102
+ return this;
103
+ }
104
+ before(handler) {
105
+ this.beforeHandlers.push(handler);
106
+ return this;
107
+ }
108
+ after(handler) {
109
+ this.afterHandlers.push(handler);
110
+ return this;
111
+ }
112
+ run(ctx, cb) {
113
+ if (typeof ctx === "function") {
114
+ cb = ctx;
115
+ ctx = {};
116
+ }
117
+ const context = ctx === void 0 ? {} : ctx;
118
+ if (typeof cb === "function") {
119
+ runPhase(this, context, cb);
120
+ return;
121
+ }
122
+ return new Promise((resolve, reject) => {
123
+ runPhase(this, context, function(error) {
124
+ if (error) reject(error);
125
+ else resolve();
126
+ });
127
+ });
128
+ }
129
+ toString() {
130
+ return this.id;
131
+ }
132
+ };
133
+ }));
134
+ //#endregion
135
+ init_phase();
136
+ exports.Phase = Phase;
137
+ Object.defineProperty(exports, "init_phase", {
138
+ enumerable: true,
139
+ get: function() {
140
+ return init_phase;
141
+ }
142
+ });
143
+
144
+ //# sourceMappingURL=phase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase.js","names":[],"sources":["../../../src/lib/phases/phase.ts"],"sourcesContent":["// Copyright IBM Corp. 2026. All Rights Reserved.\n// Node module: strong-remoting\n// This file is licensed under the Artistic License 2.0.\n// License text available at https://opensource.org/licenses/Artistic-2.0\n\nexport type PhaseCallback = (error?: unknown) => void;\nexport type PhaseHandler<TContext = unknown> = (\n context: TContext,\n next: PhaseCallback,\n) => void | Promise<void>;\n\ntype PhaseOptions = {\n id?: string;\n parallel?: boolean;\n};\n\nexport class Phase<TContext = unknown> {\n id?: string;\n options: PhaseOptions;\n handlers: PhaseHandler<TContext>[];\n beforeHandlers: PhaseHandler<TContext>[];\n afterHandlers: PhaseHandler<TContext>[];\n __isPhase__: boolean;\n\n constructor(id?: string | PhaseOptions, options?: PhaseOptions) {\n if (typeof id === 'object' && options === undefined) {\n options = id;\n id = options.id;\n }\n\n this.id = id as string | undefined;\n this.options = options || {};\n this.handlers = [];\n this.beforeHandlers = [];\n this.afterHandlers = [];\n this.__isPhase__ = true;\n }\n\n use(handler: PhaseHandler<TContext>) {\n this.handlers.push(handler);\n return this;\n }\n\n before(handler: PhaseHandler<TContext>) {\n this.beforeHandlers.push(handler);\n return this;\n }\n\n after(handler: PhaseHandler<TContext>) {\n this.afterHandlers.push(handler);\n return this;\n }\n\n run(ctx?: TContext | PhaseCallback, cb?: PhaseCallback) {\n if (typeof ctx === 'function') {\n cb = ctx as PhaseCallback;\n ctx = {} as TContext;\n }\n\n const context = (ctx === undefined ? {} : ctx) as TContext;\n if (typeof cb === 'function') {\n runPhase(this, context, cb);\n return;\n }\n\n return new Promise<void>((resolve, reject) => {\n runPhase(this, context, function (error) {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n\n toString() {\n return this.id;\n }\n}\n\nfunction runPhase<TContext>(phase: Phase<TContext>, ctx: TContext, done: PhaseCallback) {\n const stages = [phase.beforeHandlers, phase.handlers, phase.afterHandlers];\n let stageIndex = 0;\n\n function nextStage(error?: unknown) {\n if (error) {\n done(error);\n return;\n }\n\n if (stageIndex >= stages.length) {\n done();\n return;\n }\n\n runHandlers(stages[stageIndex++], phase.options.parallel === true, ctx, nextStage);\n }\n\n nextStage();\n}\n\nfunction runHandlers<TContext>(\n handlers: PhaseHandler<TContext>[],\n isParallel: boolean,\n ctx: TContext,\n done: PhaseCallback,\n) {\n if (handlers.length === 0) {\n done();\n return;\n }\n\n if (isParallel) {\n runHandlersInParallel(handlers, ctx, done);\n return;\n }\n\n let index = 0;\n\n function next(error?: unknown) {\n if (error) {\n done(error);\n return;\n }\n\n if (index >= handlers.length) {\n done();\n return;\n }\n\n invokeHandler(handlers[index++], ctx, next);\n }\n\n next();\n}\n\nfunction runHandlersInParallel<TContext>(\n handlers: PhaseHandler<TContext>[],\n ctx: TContext,\n done: PhaseCallback,\n) {\n let pending = handlers.length;\n let settled = false;\n\n function finish(error?: unknown) {\n if (settled) {\n return;\n }\n\n if (error) {\n settled = true;\n done(error);\n return;\n }\n\n pending -= 1;\n if (pending === 0) {\n settled = true;\n done();\n }\n }\n\n for (let index = 0; index < handlers.length; index += 1) {\n invokeHandler(handlers[index], ctx, finish);\n }\n}\n\nfunction invokeHandler<TContext>(\n handler: PhaseHandler<TContext>,\n ctx: TContext,\n done: PhaseCallback,\n) {\n let settled = false;\n\n function finish(error?: unknown) {\n if (settled) {\n return;\n }\n\n settled = true;\n done(error);\n }\n\n try {\n const result = handler(ctx, finish);\n if (result && typeof (result as Promise<void>).then === 'function') {\n (result as Promise<void>).then(\n () => finish(),\n (error) => finish(error),\n );\n }\n } catch (error) {\n finish(error);\n }\n}\n"],"mappings":";;;AAiFA,SAAS,SAAmB,OAAwB,KAAe,MAAqB;CACtF,MAAM,SAAS;EAAC,MAAM;EAAgB,MAAM;EAAU,MAAM;EAAc;CAC1E,IAAI,aAAa;CAEjB,SAAS,UAAU,OAAiB;AAClC,MAAI,OAAO;AACT,QAAK,MAAM;AACX;;AAGF,MAAI,cAAc,OAAO,QAAQ;AAC/B,SAAM;AACN;;AAGF,cAAY,OAAO,eAAe,MAAM,QAAQ,aAAa,MAAM,KAAK,UAAU;;AAGpF,YAAW;;AAGb,SAAS,YACP,UACA,YACA,KACA,MACA;AACA,KAAI,SAAS,WAAW,GAAG;AACzB,QAAM;AACN;;AAGF,KAAI,YAAY;AACd,wBAAsB,UAAU,KAAK,KAAK;AAC1C;;CAGF,IAAI,QAAQ;CAEZ,SAAS,KAAK,OAAiB;AAC7B,MAAI,OAAO;AACT,QAAK,MAAM;AACX;;AAGF,MAAI,SAAS,SAAS,QAAQ;AAC5B,SAAM;AACN;;AAGF,gBAAc,SAAS,UAAU,KAAK,KAAK;;AAG7C,OAAM;;AAGR,SAAS,sBACP,UACA,KACA,MACA;CACA,IAAI,UAAU,SAAS;CACvB,IAAI,UAAU;CAEd,SAAS,OAAO,OAAiB;AAC/B,MAAI,QACF;AAGF,MAAI,OAAO;AACT,aAAU;AACV,QAAK,MAAM;AACX;;AAGF,aAAW;AACX,MAAI,YAAY,GAAG;AACjB,aAAU;AACV,SAAM;;;AAIV,MAAK,IAAI,QAAQ,GAAG,QAAQ,SAAS,QAAQ,SAAS,EACpD,eAAc,SAAS,QAAQ,KAAK,OAAO;;AAI/C,SAAS,cACP,SACA,KACA,MACA;CACA,IAAI,UAAU;CAEd,SAAS,OAAO,OAAiB;AAC/B,MAAI,QACF;AAGF,YAAU;AACV,OAAK,MAAM;;AAGb,KAAI;EACF,MAAM,SAAS,QAAQ,KAAK,OAAO;AACnC,MAAI,UAAU,OAAQ,OAAyB,SAAS,WACrD,QAAyB,WAClB,QAAQ,GACb,UAAU,OAAO,MAAM,CACzB;UAEI,OAAO;AACd,SAAO,MAAM;;;;;AAjLJ,SAAb,MAAuC;EACrC;EACA;EACA;EACA;EACA;EACA;EAEA,YAAY,IAA4B,SAAwB;AAC9D,OAAI,OAAO,OAAO,YAAY,YAAY,KAAA,GAAW;AACnD,cAAU;AACV,SAAK,QAAQ;;AAGf,QAAK,KAAK;AACV,QAAK,UAAU,WAAW,EAAE;AAC5B,QAAK,WAAW,EAAE;AAClB,QAAK,iBAAiB,EAAE;AACxB,QAAK,gBAAgB,EAAE;AACvB,QAAK,cAAc;;EAGrB,IAAI,SAAiC;AACnC,QAAK,SAAS,KAAK,QAAQ;AAC3B,UAAO;;EAGT,OAAO,SAAiC;AACtC,QAAK,eAAe,KAAK,QAAQ;AACjC,UAAO;;EAGT,MAAM,SAAiC;AACrC,QAAK,cAAc,KAAK,QAAQ;AAChC,UAAO;;EAGT,IAAI,KAAgC,IAAoB;AACtD,OAAI,OAAO,QAAQ,YAAY;AAC7B,SAAK;AACL,UAAM,EAAE;;GAGV,MAAM,UAAW,QAAQ,KAAA,IAAY,EAAE,GAAG;AAC1C,OAAI,OAAO,OAAO,YAAY;AAC5B,aAAS,MAAM,SAAS,GAAG;AAC3B;;AAGF,UAAO,IAAI,SAAe,SAAS,WAAW;AAC5C,aAAS,MAAM,SAAS,SAAU,OAAO;AACvC,SAAI,MACF,QAAO,MAAM;SAEb,UAAS;MAEX;KACF;;EAGJ,WAAW;AACT,UAAO,KAAK"}
@@ -0,0 +1 @@
1
+ export { };