@azure-net/kit 4.0.0 → 5.0.0-1

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 (150) hide show
  1. package/dist/delivery/index.d.ts +3 -0
  2. package/dist/delivery/index.js +3 -0
  3. package/dist/{core/delivery/injectableDependencies → delivery/injectable-dependencies}/AsyncHelpers.d.ts +1 -1
  4. package/dist/{core/delivery/injectableDependencies → delivery/injectable-dependencies}/AsyncHelpers.js +1 -1
  5. package/dist/delivery/injectable-dependencies/ErrorHandler.d.ts +7 -0
  6. package/dist/{core/delivery/injectableDependencies → delivery/injectable-dependencies}/ErrorHandler.js +3 -2
  7. package/dist/{core/delivery → delivery}/schema/Schema.js +2 -2
  8. package/dist/{core/delivery → delivery}/schema/rules/Rules.d.ts +4 -3
  9. package/dist/{core/delivery → delivery}/schema/rules/Rules.js +17 -1
  10. package/dist/{core/delivery → delivery}/schema/rules/messages/En.d.ts +1 -1
  11. package/dist/{core/delivery → delivery}/schema/rules/messages/En.js +1 -0
  12. package/dist/{core/delivery → delivery}/schema/rules/messages/Ru.d.ts +1 -1
  13. package/dist/{core/delivery → delivery}/schema/rules/messages/Ru.js +1 -0
  14. package/dist/{core/delivery/schema/rules/messages/types.d.ts → delivery/schema/rules/messages/Types.d.ts} +1 -0
  15. package/dist/{core/delivery → delivery}/schema/rules/messages/WithI18n.d.ts +1 -1
  16. package/dist/{core/delivery → delivery}/schema/rules/messages/WithI18n.js +1 -0
  17. package/dist/{core/delivery → delivery}/schema/rules/messages/index.d.ts +1 -1
  18. package/dist/{core/delivery → delivery}/schema/rules/messages/index.js +1 -1
  19. package/dist/delivery.d.ts +2 -0
  20. package/dist/delivery.js +2 -0
  21. package/dist/errors.d.ts +4 -0
  22. package/dist/errors.js +4 -0
  23. package/dist/external/edges/Dev.d.ts +1 -0
  24. package/dist/external/edges/Dev.js +1 -0
  25. package/dist/external/edges/Edges.d.ts +1 -0
  26. package/dist/external/edges/Edges.js +1 -0
  27. package/dist/external/edges/ServerContext.d.ts +1 -0
  28. package/dist/index.d.ts +2 -2
  29. package/dist/index.js +2 -2
  30. package/dist/{core/infra → infra}/datasource/BaseDatasource.d.ts +1 -1
  31. package/dist/{core/infra → infra}/datasource/BaseDatasource.js +1 -1
  32. package/dist/{core/infra/httpService → infra/http-service}/HttpServiceInstance.js +2 -2
  33. package/dist/infra/index.d.ts +5 -0
  34. package/dist/infra/index.js +5 -0
  35. package/dist/{core/infra → infra}/query/QueryBuilder.js +1 -1
  36. package/dist/{core/infra → infra}/response/BaseResponse.d.ts +1 -1
  37. package/dist/{core/infra → infra}/response/BaseResponse.js +1 -1
  38. package/dist/infra.d.ts +1 -0
  39. package/dist/infra.js +1 -0
  40. package/dist/plugin/AzureNetPlugin.d.ts +7 -0
  41. package/dist/plugin/AzureNetPlugin.js +402 -0
  42. package/dist/plugin/index.d.ts +1 -0
  43. package/dist/plugin/index.js +1 -0
  44. package/dist/shared/app/App.d.ts +96 -0
  45. package/dist/shared/app/App.js +244 -0
  46. package/dist/shared/app/index.d.ts +4 -0
  47. package/dist/shared/app/index.js +1 -0
  48. package/dist/shared/app/middleware/ClientMiddleware.d.ts +8 -0
  49. package/dist/shared/app/middleware/ClientMiddleware.js +31 -0
  50. package/dist/shared/app/middleware/ServerMiddleware.d.ts +9 -0
  51. package/dist/shared/app/middleware/ServerMiddleware.js +31 -0
  52. package/dist/shared/app/middleware/Shared.d.ts +1 -0
  53. package/dist/{core/shared/appError → shared/app-error}/AppError.d.ts +1 -1
  54. package/dist/{core/shared/appError → shared/app-error}/AppError.js +2 -2
  55. package/dist/shared/app-error/index.d.ts +1 -0
  56. package/dist/shared/app-error/index.js +1 -0
  57. package/dist/{core/shared/boundaryProvider → shared/boundary-provider}/Provider.js +28 -4
  58. package/dist/{core/shared → shared}/cookie/UniversalCookie.js +2 -3
  59. package/dist/shared/event-bus/EventBus.d.ts +2 -0
  60. package/dist/shared/event-bus/EventBus.js +6 -0
  61. package/dist/shared/index.d.ts +5 -0
  62. package/dist/shared/index.js +5 -0
  63. package/dist/{core/svelte/ActiveForm → svelte/active-form}/ActiveForm.svelte.d.ts +1 -1
  64. package/dist/{core/svelte/ActiveForm → svelte/active-form}/ActiveForm.svelte.js +1 -1
  65. package/dist/{core/svelte/AsyncSignal → svelte/async-signal}/AsyncSignal.svelte.js +1 -1
  66. package/dist/svelte/index.d.ts +3 -0
  67. package/dist/svelte/index.js +3 -0
  68. package/dist/{core/svelte/Query → svelte/query}/Query.svelte.js +1 -1
  69. package/package.json +29 -36
  70. package/dist/core/delivery/index.js +0 -1
  71. package/dist/core/delivery/injectableDependencies/ErrorHandler.d.ts +0 -3
  72. package/dist/core/delivery.d.ts +0 -5
  73. package/dist/core/delivery.js +0 -5
  74. package/dist/core/errors.d.ts +0 -4
  75. package/dist/core/errors.js +0 -4
  76. package/dist/core/index.d.ts +0 -6
  77. package/dist/core/index.js +0 -6
  78. package/dist/core/infra/index.d.ts +0 -5
  79. package/dist/core/infra/index.js +0 -5
  80. package/dist/core/infra.d.ts +0 -6
  81. package/dist/core/infra.js +0 -6
  82. package/dist/core/shared/appEventBus/EventBus.d.ts +0 -4
  83. package/dist/core/shared/appEventBus/EventBus.js +0 -8
  84. package/dist/core/shared/middleware/Middleware.d.ts +0 -19
  85. package/dist/core/shared/middleware/Middleware.js +0 -74
  86. package/dist/core/shared/middleware/index.d.ts +0 -1
  87. package/dist/core/shared/middleware/index.js +0 -1
  88. package/dist/core/svelte/index.d.ts +0 -3
  89. package/dist/core/svelte/index.js +0 -3
  90. package/dist/edges/context/index.js +0 -1
  91. package/dist/edges/dev/index.d.ts +0 -1
  92. package/dist/edges/dev/index.js +0 -1
  93. package/dist/edges/index.d.ts +0 -1
  94. package/dist/edges/index.js +0 -1
  95. package/dist/edges/plugin/index.d.ts +0 -1
  96. package/dist/edges/plugin/index.js +0 -2
  97. package/dist/edges/state/index.d.ts +0 -1
  98. package/dist/edges/state/index.js +0 -1
  99. /package/dist/{core/delivery/injectableDependencies → delivery/injectable-dependencies}/index.d.ts +0 -0
  100. /package/dist/{core/delivery/injectableDependencies → delivery/injectable-dependencies}/index.js +0 -0
  101. /package/dist/{core/delivery → delivery}/schema/Schema.d.ts +0 -0
  102. /package/dist/{core/delivery → delivery}/schema/index.d.ts +0 -0
  103. /package/dist/{core/delivery → delivery}/schema/index.js +0 -0
  104. /package/dist/{core/delivery → delivery}/schema/rules/index.d.ts +0 -0
  105. /package/dist/{core/delivery → delivery}/schema/rules/index.js +0 -0
  106. /package/dist/{core/delivery/index.d.ts → delivery/schema/rules/messages/Types.js} +0 -0
  107. /package/dist/{edges/context/index.d.ts → external/edges/ServerContext.js} +0 -0
  108. /package/dist/{edges/server/index.d.ts → external/edges/_edges.d.ts} +0 -0
  109. /package/dist/{edges/server/index.js → external/edges/_edges.js} +0 -0
  110. /package/dist/{i18n → external/i18n}/index.d.ts +0 -0
  111. /package/dist/{i18n → external/i18n}/index.js +0 -0
  112. /package/dist/{tools → external/tools}/index.d.ts +0 -0
  113. /package/dist/{tools → external/tools}/index.js +0 -0
  114. /package/dist/{core/infra → infra}/datasource/index.d.ts +0 -0
  115. /package/dist/{core/infra → infra}/datasource/index.js +0 -0
  116. /package/dist/{core/infra/httpService → infra/http-service}/HttpServiceInstance.d.ts +0 -0
  117. /package/dist/{core/infra/httpService → infra/http-service}/Statuses.d.ts +0 -0
  118. /package/dist/{core/infra/httpService → infra/http-service}/Statuses.js +0 -0
  119. /package/dist/{core/infra/httpService → infra/http-service}/index.d.ts +0 -0
  120. /package/dist/{core/infra/httpService → infra/http-service}/index.js +0 -0
  121. /package/dist/{core/infra → infra}/query/QueryBuilder.d.ts +0 -0
  122. /package/dist/{core/infra → infra}/query/index.d.ts +0 -0
  123. /package/dist/{core/infra → infra}/query/index.js +0 -0
  124. /package/dist/{core/infra → infra}/resource/BaseResource.d.ts +0 -0
  125. /package/dist/{core/infra → infra}/resource/BaseResource.js +0 -0
  126. /package/dist/{core/infra → infra}/resource/index.d.ts +0 -0
  127. /package/dist/{core/infra → infra}/resource/index.js +0 -0
  128. /package/dist/{core/infra → infra}/response/index.d.ts +0 -0
  129. /package/dist/{core/infra → infra}/response/index.js +0 -0
  130. /package/dist/{core/delivery/schema/rules/messages/types.js → shared/app/middleware/Shared.js} +0 -0
  131. /package/dist/{core/shared/boundaryProvider → shared/boundary-provider}/Provider.d.ts +0 -0
  132. /package/dist/{core/shared/boundaryProvider → shared/boundary-provider}/index.d.ts +0 -0
  133. /package/dist/{core/shared/boundaryProvider → shared/boundary-provider}/index.js +0 -0
  134. /package/dist/{core/shared/classMirror → shared/class-mirror}/ClassMirror.d.ts +0 -0
  135. /package/dist/{core/shared/classMirror → shared/class-mirror}/ClassMirror.js +0 -0
  136. /package/dist/{core/shared/classMirror → shared/class-mirror}/index.d.ts +0 -0
  137. /package/dist/{core/shared/classMirror → shared/class-mirror}/index.js +0 -0
  138. /package/dist/{core/shared → shared}/cookie/UniversalCookie.d.ts +0 -0
  139. /package/dist/{core/shared → shared}/cookie/index.d.ts +0 -0
  140. /package/dist/{core/shared → shared}/cookie/index.js +0 -0
  141. /package/dist/{core/shared/appEventBus → shared/event-bus}/index.d.ts +0 -0
  142. /package/dist/{core/shared/appEventBus → shared/event-bus}/index.js +0 -0
  143. /package/dist/{core/svelte/ActiveForm → svelte/active-form}/index.d.ts +0 -0
  144. /package/dist/{core/svelte/ActiveForm → svelte/active-form}/index.js +0 -0
  145. /package/dist/{core/svelte/AsyncSignal → svelte/async-signal}/AsyncSignal.svelte.d.ts +0 -0
  146. /package/dist/{core/svelte/AsyncSignal → svelte/async-signal}/index.d.ts +0 -0
  147. /package/dist/{core/svelte/AsyncSignal → svelte/async-signal}/index.js +0 -0
  148. /package/dist/{core/svelte/Query → svelte/query}/Query.svelte.d.ts +0 -0
  149. /package/dist/{core/svelte/Query → svelte/query}/index.d.ts +0 -0
  150. /package/dist/{core/svelte/Query → svelte/query}/index.js +0 -0
@@ -0,0 +1,244 @@
1
+ import { BROWSER } from '../../external/tools/index.js';
2
+ import { RequestContext } from '../../external/edges/ServerContext.js';
3
+ import { createBoundaryProvider } from '../boundary-provider/Provider.js';
4
+ import { AzureNetKitInternalError } from '../app-error/AppError.js';
5
+ import { executeServerMiddlewares } from './middleware/ServerMiddleware.js';
6
+ import { beforeNavigate } from '$app/navigation';
7
+ import { executeClientMiddlewares } from './middleware/ClientMiddleware.js';
8
+ const DEFAULT_APP_NAME = '__AzureNetKitGlobalAppContainer__';
9
+ const clientLifecycleFlags = new WeakMap();
10
+ const serverInitLifecycleFlags = new WeakMap();
11
+ const getRequestContext = () => {
12
+ try {
13
+ return RequestContext.current();
14
+ }
15
+ catch {
16
+ return undefined;
17
+ }
18
+ };
19
+ const getServerRequestContext = (event) => {
20
+ const requestContext = getRequestContext();
21
+ if (requestContext)
22
+ return requestContext;
23
+ if (event) {
24
+ return { data: {}, event };
25
+ }
26
+ throw new AzureNetKitInternalError('[createApp] RequestContext is not initialized on server.');
27
+ };
28
+ const getLifecycleFlags = (appKey, requestContext) => {
29
+ if (BROWSER) {
30
+ let flags = clientLifecycleFlags.get(appKey);
31
+ if (!flags) {
32
+ flags = {};
33
+ clientLifecycleFlags.set(appKey, flags);
34
+ }
35
+ return flags;
36
+ }
37
+ const context = requestContext ?? getRequestContext();
38
+ if (!context) {
39
+ throw new AzureNetKitInternalError('[createApp] RequestContext is not initialized on server.');
40
+ }
41
+ const flagsMap = (context.data.appLifecycleFlags ??= new WeakMap());
42
+ let flags = flagsMap.get(appKey);
43
+ if (!flags) {
44
+ flags = {};
45
+ flagsMap.set(appKey, flags);
46
+ }
47
+ return flags;
48
+ };
49
+ const setCallback = (callbacks, key, callback) => {
50
+ if (callbacks[key]) {
51
+ throw new AzureNetKitInternalError(`[createApp] '${key}' can be registered only once.`);
52
+ }
53
+ callbacks[key] = callback;
54
+ };
55
+ const createBuilder = (dependencies, callbacks) => {
56
+ const builder = {
57
+ use(callback) {
58
+ setCallback(callbacks, 'use', callback);
59
+ return builder;
60
+ },
61
+ useClient(callback) {
62
+ setCallback(callbacks, 'useClient', callback);
63
+ return builder;
64
+ },
65
+ useClientInit(callback) {
66
+ setCallback(callbacks, 'useClientInit', callback);
67
+ return builder;
68
+ },
69
+ useClientError(callback) {
70
+ setCallback(callbacks, 'useClientError', callback);
71
+ return builder;
72
+ },
73
+ useServerInit(callback) {
74
+ setCallback(callbacks, 'useServerInit', callback);
75
+ return builder;
76
+ },
77
+ useServer(callback) {
78
+ setCallback(callbacks, 'useServer', callback);
79
+ return builder;
80
+ },
81
+ useServerError(callback) {
82
+ setCallback(callbacks, 'useServerError', callback);
83
+ return builder;
84
+ },
85
+ dependencies(nextDependencies) {
86
+ for (const [key, factory] of Object.entries(nextDependencies)) {
87
+ dependencies.set(key, factory);
88
+ }
89
+ return builder;
90
+ }
91
+ };
92
+ return builder;
93
+ };
94
+ export const createApp = (callback, name = DEFAULT_APP_NAME) => {
95
+ const appKey = {};
96
+ const dependencies = new Map();
97
+ const callbacks = {};
98
+ let clientInitialized = false;
99
+ callback(createBuilder(dependencies, callbacks));
100
+ const AppProvider = createBoundaryProvider(name, {
101
+ register: () => {
102
+ const factories = {};
103
+ for (const [key, factory] of dependencies.entries()) {
104
+ factories[key] = () => factory(Container);
105
+ }
106
+ return factories;
107
+ }
108
+ });
109
+ const Container = new Proxy({}, {
110
+ get(_, key) {
111
+ if (typeof key === 'symbol')
112
+ return undefined;
113
+ return AppProvider()[key];
114
+ },
115
+ has(_, key) {
116
+ return typeof key === 'string' && key in AppProvider();
117
+ },
118
+ ownKeys() {
119
+ return Reflect.ownKeys(AppProvider());
120
+ },
121
+ getOwnPropertyDescriptor(_, key) {
122
+ if (typeof key !== 'string' || !(key in AppProvider()))
123
+ return undefined;
124
+ return {
125
+ configurable: true,
126
+ enumerable: true,
127
+ value: AppProvider()[key]
128
+ };
129
+ }
130
+ });
131
+ const runClient = (kind) => {
132
+ if (!BROWSER)
133
+ return undefined;
134
+ const flags = getLifecycleFlags(appKey);
135
+ if (flags[kind])
136
+ return undefined;
137
+ flags[kind] = true;
138
+ if (kind === 'clientInit') {
139
+ const universalContext = {
140
+ Container,
141
+ isClient: true,
142
+ isServer: false
143
+ };
144
+ const universalResult = callbacks.use?.(universalContext);
145
+ if (universalResult && typeof universalResult.then === 'function') {
146
+ return universalResult.then(() => callbacks.useClientInit?.({ Container }));
147
+ }
148
+ return callbacks.useClientInit?.({ Container });
149
+ }
150
+ let internalMiddlewares = [];
151
+ const clientResult = callbacks.useClient?.({
152
+ Container,
153
+ useMiddlewares: (middlewares) => {
154
+ internalMiddlewares = middlewares;
155
+ }
156
+ });
157
+ const registerNavigation = () => {
158
+ if (clientInitialized)
159
+ return;
160
+ clientInitialized = true;
161
+ beforeNavigate(async (navigation) => {
162
+ await executeClientMiddlewares(internalMiddlewares, navigation);
163
+ });
164
+ };
165
+ if (clientResult && typeof clientResult.then === 'function') {
166
+ return clientResult.then(registerNavigation);
167
+ }
168
+ registerNavigation();
169
+ };
170
+ const runServerInit = () => {
171
+ if (BROWSER)
172
+ return undefined;
173
+ let flags = serverInitLifecycleFlags.get(appKey);
174
+ if (!flags) {
175
+ flags = {};
176
+ serverInitLifecycleFlags.set(appKey, flags);
177
+ }
178
+ if (flags.serverInit)
179
+ return undefined;
180
+ flags.serverInit = true;
181
+ return callbacks.useServerInit?.({ Container });
182
+ };
183
+ const runServerError = ({ error, event, status, message }) => {
184
+ if (BROWSER)
185
+ return undefined;
186
+ return callbacks.useServerError?.({
187
+ Container,
188
+ requestContext: getServerRequestContext(event),
189
+ error,
190
+ event,
191
+ status,
192
+ message
193
+ });
194
+ };
195
+ const runClientError = ({ error, event, status, message }) => {
196
+ if (!BROWSER)
197
+ return undefined;
198
+ return callbacks.useClientError?.({
199
+ Container,
200
+ error,
201
+ event,
202
+ status,
203
+ message
204
+ });
205
+ };
206
+ const handle = async ({ event, resolve }) => {
207
+ const requestContext = getServerRequestContext(event);
208
+ const flags = getLifecycleFlags(appKey, requestContext);
209
+ if (!flags.server) {
210
+ flags.server = true;
211
+ const universalResult = callbacks.use?.({
212
+ Container,
213
+ isClient: false,
214
+ isServer: true,
215
+ requestContext,
216
+ event
217
+ });
218
+ if (universalResult && typeof universalResult.then === 'function') {
219
+ await universalResult;
220
+ }
221
+ const serverResult = await callbacks.useServer?.({
222
+ Container,
223
+ requestContext,
224
+ event,
225
+ resolve,
226
+ useMiddlewares: executeServerMiddlewares
227
+ });
228
+ if (serverResult)
229
+ return serverResult;
230
+ }
231
+ return resolve(event);
232
+ };
233
+ const register = Object.assign(() => runClient('client'), {
234
+ clientInit: () => runClient('clientInit'),
235
+ clientError: runClientError,
236
+ serverInit: runServerInit,
237
+ serverError: runServerError,
238
+ handle
239
+ });
240
+ return {
241
+ Container,
242
+ register
243
+ };
244
+ };
@@ -0,0 +1,4 @@
1
+ export { createApp, type AppClientErrorCallback, type AppClientErrorContext, type AppClientInitLifecycleCallback, type AppClientInitLifecycleContext, type AppClientLifecycleCallback, type AppClientLifecycleContext, type AppContainer, type AppRegistrar, type AppServerErrorCallback, type AppServerErrorContext, type AppServerInitLifecycleCallback, type AppServerInitLifecycleContext, type AppServerLifecycleCallback, type AppServerLifecycleContext, type AppUniversalLifecycleCallback, type AppUniversalLifecycleContext, type CreateAppInstance } from './App.js';
2
+ export type { IClientMiddleware } from './middleware/ClientMiddleware.js';
3
+ export type { IServerMiddleware } from './middleware/ServerMiddleware.js';
4
+ export type { RedirectStatus } from './middleware/Shared.js';
@@ -0,0 +1 @@
1
+ export { createApp } from './App.js';
@@ -0,0 +1,8 @@
1
+ import { type BeforeNavigate } from '@sveltejs/kit';
2
+ import type { RedirectStatus } from './Shared.js';
3
+ export type IClientMiddleware = (middlewareData: {
4
+ to: URL;
5
+ from?: URL;
6
+ next: (location?: string | URL, status?: RedirectStatus) => void;
7
+ }) => Promise<void> | void;
8
+ export declare const executeClientMiddlewares: (middlewares: IClientMiddleware[], navigation?: BeforeNavigate) => Promise<void>;
@@ -0,0 +1,31 @@
1
+ import {} from '@sveltejs/kit';
2
+ import { page } from '$app/state';
3
+ import { goto } from '$app/navigation';
4
+ export const executeClientMiddlewares = async (middlewares, navigation) => {
5
+ const from = navigation?.from?.url ?? undefined;
6
+ const to = navigation?.to?.url ?? page?.url;
7
+ for (const middleware of middlewares) {
8
+ let shouldContinue = false;
9
+ const next = (location) => {
10
+ shouldContinue = true;
11
+ if (location) {
12
+ if (navigation) {
13
+ navigation?.cancel();
14
+ }
15
+ return goto(location);
16
+ }
17
+ };
18
+ await middleware({
19
+ to,
20
+ from,
21
+ next
22
+ });
23
+ if (!shouldContinue) {
24
+ navigation?.cancel();
25
+ if (from) {
26
+ void goto(from.pathname);
27
+ console.warn('Navigation blocked: middleware chain stopped (next() not called).');
28
+ }
29
+ }
30
+ }
31
+ };
@@ -0,0 +1,9 @@
1
+ import { type RequestEvent } from '@sveltejs/kit';
2
+ import type { RedirectStatus } from './Shared.js';
3
+ export type IServerMiddleware = (middlewareData: {
4
+ to: RequestEvent['url'];
5
+ from?: RequestEvent['url'];
6
+ next: (location?: string | URL, status?: RedirectStatus) => void;
7
+ event?: RequestEvent;
8
+ }) => Promise<void> | void;
9
+ export declare const executeServerMiddlewares: (middlewares: IServerMiddleware[]) => Promise<void>;
@@ -0,0 +1,31 @@
1
+ import { error, redirect } from '@sveltejs/kit';
2
+ import { BROWSER } from '../../../external/tools/index.js';
3
+ import { RequestContext } from '../../../external/edges/ServerContext.js';
4
+ export const executeServerMiddlewares = async (middlewares) => {
5
+ if (!BROWSER && middlewares.length) {
6
+ const event = RequestContext.current().event;
7
+ if (event) {
8
+ const referer = event?.request.headers.get('referer');
9
+ const from = referer ? new URL(referer) : undefined;
10
+ const to = event?.url;
11
+ for (const middleware of middlewares) {
12
+ let shouldContinue = false;
13
+ const next = (location, status = 301) => {
14
+ shouldContinue = true;
15
+ if (location) {
16
+ return redirect(status, location);
17
+ }
18
+ };
19
+ await middleware({
20
+ event,
21
+ to,
22
+ from,
23
+ next
24
+ });
25
+ if (!shouldContinue) {
26
+ error(403, 'Navigation blocked: middleware chain stopped (next() not called).');
27
+ }
28
+ }
29
+ }
30
+ }
31
+ };
@@ -0,0 +1 @@
1
+ export type RedirectStatus = 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308;
@@ -1,4 +1,4 @@
1
- import { HttpServiceError } from '../../infra/httpService/HttpServiceInstance.js';
1
+ import { HttpServiceError } from '../../infra/http-service/HttpServiceInstance.js';
2
2
  import { type RequestErrors } from '../../delivery/schema/Schema.js';
3
3
  export declare enum ErrorTypes {
4
4
  Http = "Http",
@@ -1,6 +1,6 @@
1
- import { HttpErrorTypes, HttpServiceError } from '../../infra/httpService/HttpServiceInstance.js';
1
+ import { HttpErrorTypes, HttpServiceError } from '../../infra/http-service/HttpServiceInstance.js';
2
2
  import { SchemaFail } from '../../delivery/schema/Schema.js';
3
- import { AsyncHelperError } from '../../delivery/injectableDependencies/AsyncHelpers.js';
3
+ import { AsyncHelperError } from '../../delivery/injectable-dependencies/AsyncHelpers.js';
4
4
  export var ErrorTypes;
5
5
  (function (ErrorTypes) {
6
6
  ErrorTypes["Http"] = "Http";
@@ -0,0 +1 @@
1
+ export * from './AppError.js';
@@ -0,0 +1 @@
1
+ export * from './AppError.js';
@@ -1,9 +1,10 @@
1
- import { RequestContext } from '../../../edges/context/index.js';
2
- import { BROWSER } from '@azure-net/tools/environment';
3
- import { AzureNetKitInternalError } from '../appError/AppError.js';
1
+ import { RequestContext } from '../../external/edges/ServerContext.js';
2
+ import { BROWSER } from '../../external/tools/index.js';
3
+ import { AzureNetKitInternalError } from '../app-error/AppError.js';
4
4
  const clientCache = new Map();
5
5
  const factoriesCache = new WeakMap();
6
6
  const providerProxyCache = new Map();
7
+ const clientConstructionStack = [];
7
8
  const clientBootFlags = new Map();
8
9
  const getProviderCache = (providerName) => {
9
10
  if (BROWSER) {
@@ -54,6 +55,29 @@ const setBootFlag = (providerName, value) => {
54
55
  bootFlags.set(providerName, value);
55
56
  }
56
57
  };
58
+ const getConstructionStack = () => {
59
+ if (BROWSER)
60
+ return clientConstructionStack;
61
+ const context = RequestContext.current();
62
+ return (context.data.boundaryProviderConstructionStack ??= []);
63
+ };
64
+ const runWithCycleGuard = (key, callback) => {
65
+ const stack = getConstructionStack();
66
+ if (stack.includes(key)) {
67
+ const cycleStart = stack.indexOf(key);
68
+ const cyclePath = [...stack.slice(cycleStart), key].join(' -> ');
69
+ throw new AzureNetKitInternalError(`[BoundaryProvider] Circular provider dependency detected: ${cyclePath}`);
70
+ }
71
+ stack.push(key);
72
+ try {
73
+ return callback();
74
+ }
75
+ finally {
76
+ const idx = stack.lastIndexOf(key);
77
+ if (idx !== -1)
78
+ stack.splice(idx, 1);
79
+ }
80
+ };
57
81
  export const createBoundaryProvider = (name, settings) => {
58
82
  const { dependsOn = {}, boot, register } = settings;
59
83
  const providerFn = () => {
@@ -101,7 +125,7 @@ export const createBoundaryProvider = (name, settings) => {
101
125
  if (typeof factory !== 'function') {
102
126
  throw new AzureNetKitInternalError('[BoundaryProvider] Factory must be a function');
103
127
  }
104
- const instance = factory();
128
+ const instance = runWithCycleGuard(`${name}.${key}`, () => factory());
105
129
  if (instance && typeof instance?.then === 'function') {
106
130
  throw new AzureNetKitInternalError(`[BoundaryProvider] Service '${key}' in provider '${name}' returned Promise.`);
107
131
  }
@@ -1,6 +1,5 @@
1
- import { Cookies } from '@azure-net/tools';
2
- import { BROWSER } from '@azure-net/tools/environment';
3
- import { RequestContext } from '@azure-net/edges/context';
1
+ import { BROWSER, Cookies } from '../../external/tools/index.js';
2
+ import { RequestContext } from '../../external/edges/ServerContext.js';
4
3
  /**
5
4
  * Utility class for managing cookies in svelte ssr (browser and server).
6
5
  * Supports setting, getting, deleting, checking, and clearing cookies.
@@ -0,0 +1,2 @@
1
+ import { EventBus } from '../../external/tools/index.js';
2
+ export declare const AppEvents: () => EventBus<any>;
@@ -0,0 +1,6 @@
1
+ import { EventBus } from '../../external/tools/index.js';
2
+ import { createPresenter } from '../../external/edges/Edges.js';
3
+ export const AppEvents = createPresenter(() => {
4
+ const appEventBus = new EventBus({});
5
+ return appEventBus;
6
+ });
@@ -0,0 +1,5 @@
1
+ export { UniversalCookie, type CookieOptions } from './cookie/index.js';
2
+ export { AppEvents } from './event-bus/index.js';
3
+ export { ClassMirror } from './class-mirror/index.js';
4
+ export { createBoundaryProvider, cleanupProvider, type ProviderSettings } from './boundary-provider/index.js';
5
+ export { createApp, type AppContainer, type CreateAppInstance } from './app/index.js';
@@ -0,0 +1,5 @@
1
+ export { UniversalCookie } from './cookie/index.js';
2
+ export { AppEvents } from './event-bus/index.js';
3
+ export { ClassMirror } from './class-mirror/index.js';
4
+ export { createBoundaryProvider, cleanupProvider } from './boundary-provider/index.js';
5
+ export { createApp } from './app/index.js';
@@ -1,5 +1,5 @@
1
1
  import type { RequestErrors } from '../../delivery/schema/index.js';
2
- import type { AsyncActionResponse } from '../../delivery/injectableDependencies/AsyncHelpers.js';
2
+ import type { AsyncActionResponse } from '../../delivery/injectable-dependencies/AsyncHelpers.js';
3
3
  type InitialData<FormData, Initial extends Partial<FormData>> = () => Initial | Promise<Initial>;
4
4
  type PathRequiredShape<T, P extends string> = P extends `${infer Head}.${infer Tail}` ? Head extends keyof T ? {
5
5
  [K in Head]-?: PathRequiredShape<NonNullable<T[K]>, Tail>;
@@ -1,4 +1,4 @@
1
- import { ObjectUtil } from '@azure-net/tools';
1
+ import { ObjectUtil } from '../../external/tools/index.js';
2
2
  export const createActiveForm = (onSubmit, config) => {
3
3
  const isPromise = (value) => {
4
4
  return typeof value?.then === 'function';
@@ -1,5 +1,5 @@
1
1
  import { untrack } from 'svelte';
2
- import { BROWSER } from '@azure-net/tools/environment';
2
+ import { BROWSER } from '../../external/tools/index.js';
3
3
  const createAsyncSignalManager = () => {
4
4
  const instances = BROWSER ? new Map() : undefined;
5
5
  const generateUid = () => {
@@ -0,0 +1,3 @@
1
+ export { createAsyncSignal, refreshAsyncSignal, refreshAllAsyncSignals, type AsyncSignalOptions, type AsyncSignalSvelte, type AsyncStatus, type AsyncSignalSource } from './async-signal/AsyncSignal.svelte.js';
2
+ export { createActiveForm } from './active-form/ActiveForm.svelte.js';
3
+ export { createQuery, type QueryController, type CreateQueryOptions } from './query/Query.svelte.js';
@@ -0,0 +1,3 @@
1
+ export { createAsyncSignal, refreshAsyncSignal, refreshAllAsyncSignals } from './async-signal/AsyncSignal.svelte.js';
2
+ export { createActiveForm } from './active-form/ActiveForm.svelte.js';
3
+ export { createQuery } from './query/Query.svelte.js';
@@ -1,4 +1,4 @@
1
- import { ObjectUtil } from '@azure-net/tools';
1
+ import { ObjectUtil } from '../../external/tools/index.js';
2
2
  import { untrack } from 'svelte';
3
3
  export const createQuery = (initialValue, options) => {
4
4
  const baseInitial = ObjectUtil.deepClone(initialValue);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-net/kit",
3
- "version": "4.0.0",
3
+ "version": "5.0.0-1",
4
4
  "license": "MIT",
5
5
  "author": "Pixel1917",
6
6
  "description": "Universal toolkit and library collection, developed as part of the Azure-net ecosystem",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/Pixel1917/azure-net-kit.git"
14
+ "url": "git+https://github.com/Pixel1917/azure-net-kit.git"
15
15
  },
16
16
  "publishConfig": {
17
17
  "access": "public",
@@ -34,49 +34,42 @@
34
34
  "svelte": "./dist/index.js"
35
35
  },
36
36
  "./infra": {
37
- "types": "./dist/core/infra.d.ts",
38
- "svelte": "./dist/core/infra.js"
37
+ "types": "./dist/infra.d.ts",
38
+ "svelte": "./dist/infra.js"
39
39
  },
40
40
  "./delivery": {
41
- "types": "./dist/core/delivery.d.ts",
42
- "svelte": "./dist/core/delivery.js"
41
+ "types": "./dist/delivery.d.ts",
42
+ "svelte": "./dist/delivery.js"
43
43
  },
44
44
  "./errors": {
45
- "types": "./dist/core/errors.d.ts",
46
- "svelte": "./dist/core/errors.js"
45
+ "types": "./dist/errors.d.ts",
46
+ "svelte": "./dist/errors.js"
47
47
  },
48
- "./edges": {
49
- "types": "./dist/edges/index.d.ts",
50
- "svelte": "./dist/edges/index.js"
48
+ "./plugin": {
49
+ "types": "./dist/plugin/index.d.ts",
50
+ "svelte": "./dist/plugin/index.js",
51
+ "import": "./dist/plugin/index.js"
51
52
  },
52
- "./edges/server": {
53
- "types": "./dist/edges/server/index.d.ts",
54
- "svelte": "./dist/edges/server/index.js"
55
- },
56
- "./edges/state": {
57
- "types": "./dist/edges/state/index.d.ts",
58
- "svelte": "./dist/edges/state/index.js"
59
- },
60
- "./edges/context": {
61
- "types": "./dist/edges/context/index.d.ts",
62
- "svelte": "./dist/edges/context/index.js"
53
+ "./server-context": {
54
+ "types": "./dist/external/edges/ServerContext.d.ts",
55
+ "svelte": "./dist/external/edges/ServerContext.js"
63
56
  },
64
57
  "./edges/dev": {
65
- "types": "./dist/edges/dev/index.d.ts",
66
- "svelte": "./dist/edges/dev/index.js"
67
- },
68
- "./edges/plugin": {
69
- "types": "./dist/edges/plugin/index.d.ts",
70
- "svelte": "./dist/edges/plugin/index.js",
71
- "import": "./dist/edges/plugin/index.js"
58
+ "types": "./dist/external/edges/Dev.d.ts",
59
+ "svelte": "./dist/external/edges/Dev.js"
72
60
  },
73
61
  "./tools": {
74
- "types": "./dist/tools/index.d.ts",
75
- "svelte": "./dist/tools/index.js"
62
+ "types": "./dist/external/tools/index.d.ts",
63
+ "svelte": "./dist/external/tools/index.js"
76
64
  },
77
65
  "./i18n": {
78
- "types": "./dist/i18n/index.d.ts",
79
- "svelte": "./dist/i18n/index.js"
66
+ "types": "./dist/external/i18n/index.d.ts",
67
+ "svelte": "./dist/external/i18n/index.js"
68
+ },
69
+ "./edges/internal-package/utils": {
70
+ "types": "./dist/external/edges/_edges.d.ts",
71
+ "svelte": "./dist/external/edges/_edges.js",
72
+ "import": "./dist/external/edges/_edges.js"
80
73
  }
81
74
  },
82
75
  "peerDependencies": {
@@ -128,9 +121,9 @@
128
121
  "utils"
129
122
  ],
130
123
  "dependencies": {
131
- "@azure-net/edges": "^1.2.5",
132
- "@azure-net/edges-translations": "^1.2.5",
133
- "@azure-net/tools": "^1.2.5"
124
+ "@azure-net/edges": "^1.2.7",
125
+ "@azure-net/edges-translations": "^1.2.7",
126
+ "@azure-net/tools": "^1.2.7"
134
127
  },
135
128
  "scripts": {
136
129
  "dev": "vite dev",
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,3 +0,0 @@
1
- import { AppError, type IAppError } from '../../shared/appError/AppError.js';
2
- import type { AsyncHelperRetry } from './AsyncHelpers.js';
3
- export declare const createErrorHandler: <CustomData extends object>(handle?: <T = unknown>(error: AppError<T>, asyncHelperRetry: AsyncHelperRetry) => Promise<IAppError<T> & CustomData>) => <T = unknown>(error: Error, asyncHelperRetry?: AsyncHelperRetry) => Promise<IAppError<T> & CustomData>;
@@ -1,5 +0,0 @@
1
- export { createPresenter, createStore, createPresenterFactory, createStoreFactory, clearCache } from '../edges/index.js';
2
- export { createAsyncHelpers, type AsyncHelperRetry, type AsyncResourceSettings, type AsyncActionResponse } from './delivery/injectableDependencies/AsyncHelpers.js';
3
- export { createErrorHandler } from './delivery/injectableDependencies/ErrorHandler.js';
4
- export { createSchemaFactory, schema, type Schema, type RequestErrors, type ISchemaError, type ValidationResult, type ValidationRuleResult, type ValidationParams, type ValidationMessage, type ValidationErrorsMap } from './delivery/schema/Schema.js';
5
- export { createRules, validationMessagesRu, validationMessagesI18n, validationMessagesEn, type ValidationRuleParams, type BaseValidationMessages } from './delivery/schema/rules/index.js';
@@ -1,5 +0,0 @@
1
- export { createPresenter, createStore, createPresenterFactory, createStoreFactory, clearCache } from '../edges/index.js';
2
- export { createAsyncHelpers } from './delivery/injectableDependencies/AsyncHelpers.js';
3
- export { createErrorHandler } from './delivery/injectableDependencies/ErrorHandler.js';
4
- export { createSchemaFactory, schema } from './delivery/schema/Schema.js';
5
- export { createRules, validationMessagesRu, validationMessagesI18n, validationMessagesEn } from './delivery/schema/rules/index.js';
@@ -1,4 +0,0 @@
1
- export { AppError, ErrorTypes, AzureNetKitInternalError, type IAppError } from './shared/appError/AppError.js';
2
- export { HttpServiceError } from './infra/httpService/HttpServiceInstance.js';
3
- export { AsyncHelperError } from './delivery/injectableDependencies/AsyncHelpers.js';
4
- export { SchemaFail } from './delivery/schema/Schema.js';
@@ -1,4 +0,0 @@
1
- export { AppError, ErrorTypes, AzureNetKitInternalError } from './shared/appError/AppError.js';
2
- export { HttpServiceError } from './infra/httpService/HttpServiceInstance.js';
3
- export { AsyncHelperError } from './delivery/injectableDependencies/AsyncHelpers.js';
4
- export { SchemaFail } from './delivery/schema/Schema.js';
@@ -1,6 +0,0 @@
1
- export { createQuery, createAsyncSignal, createActiveForm, refreshAsyncSignal, refreshAllAsyncSignals, type AsyncSignalOptions, type AsyncSignalSvelte, type QueryController, type CreateQueryOptions, type AsyncSignalSource, type AsyncStatus } from './svelte/index.js';
2
- export { createMiddlewareManager, type IMiddleware } from './shared/middleware/index.js';
3
- export { ClassMirror } from './shared/classMirror/index.js';
4
- export { UniversalCookie, type CookieOptions } from './shared/cookie/index.js';
5
- export { createBoundaryProvider, cleanupProvider, type ProviderSettings } from './shared/boundaryProvider/index.js';
6
- export { AppEvents } from './shared/appEventBus/index.js';