@highstate/designer 0.7.1 → 0.7.3

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 (131) hide show
  1. package/package.json +14 -7
  2. package/.output/nitro.json +0 -15
  3. package/.output/public/_nuxt/1_b4y8eQ.js +0 -1
  4. package/.output/public/_nuxt/BjOhMR1f.js +0 -242
  5. package/.output/public/_nuxt/CPAAHz3G.js +0 -1
  6. package/.output/public/_nuxt/CmGpyJTe.js +0 -1
  7. package/.output/public/_nuxt/builds/latest.json +0 -1
  8. package/.output/public/_nuxt/builds/meta/d9ef4694-b71b-4675-9064-eba6ec8658b0.json +0 -1
  9. package/.output/public/_nuxt/entry.Vs8IncyG.css +0 -5
  10. package/.output/public/_nuxt/error-404.BJkSn6RI.css +0 -1
  11. package/.output/public/_nuxt/error-500.TOCKLquH.css +0 -1
  12. package/.output/public/_nuxt/materialdesignicons-webfont.B6OSyW2I.woff2 +0 -0
  13. package/.output/public/_nuxt/materialdesignicons-webfont.BpRar1d5.ttf +0 -0
  14. package/.output/public/_nuxt/materialdesignicons-webfont.Bvl3VxMs.woff +0 -0
  15. package/.output/public/_nuxt/materialdesignicons-webfont.TEmAk13K.eot +0 -0
  16. package/.output/public/favicon.ico +0 -0
  17. package/.output/public/libavoid.wasm +0 -0
  18. package/.output/public/robots.txt +0 -1
  19. package/.output/server/index.mjs +0 -11426
  20. package/.output/server/index.mjs.map +0 -1
  21. package/.output/server/node_modules/@babel/parser/lib/index.js +0 -14246
  22. package/.output/server/node_modules/@babel/parser/package.json +0 -50
  23. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/fetchRequestHandler.mjs +0 -74
  24. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/index.mjs +0 -1
  25. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/incomingMessageToRequest.mjs +0 -119
  26. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/index.mjs +0 -2
  27. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +0 -92
  28. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/writeResponse.mjs +0 -79
  29. package/.output/server/node_modules/@trpc/server/dist/index.mjs +0 -12
  30. package/.output/server/node_modules/@trpc/server/dist/observable/observable.mjs +0 -175
  31. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/createProxy.mjs +0 -73
  32. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/TRPCError.mjs +0 -79
  33. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/formatter.mjs +0 -5
  34. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/getErrorShape.mjs +0 -29
  35. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/abortError.mjs +0 -10
  36. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/contentType.mjs +0 -229
  37. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +0 -76
  38. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +0 -39
  39. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/resolveResponse.mjs +0 -570
  40. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/initTRPC.mjs +0 -80
  41. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/middleware.mjs +0 -90
  42. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/parser.mjs +0 -52
  43. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedureBuilder.mjs +0 -198
  44. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rootConfig.mjs +0 -6
  45. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/router.mjs +0 -278
  46. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/codes.mjs +0 -54
  47. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/jsonl.mjs +0 -603
  48. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/sse.mjs +0 -369
  49. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/tracked.mjs +0 -25
  50. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +0 -165
  51. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +0 -15
  52. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +0 -43
  53. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.mjs +0 -239
  54. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +0 -23
  55. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +0 -23
  56. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +0 -127
  57. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/transformer.mjs +0 -101
  58. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/utils.mjs +0 -83
  59. package/.output/server/node_modules/@trpc/server/dist/vendor/standard-schema-v1/error.mjs +0 -26
  60. package/.output/server/node_modules/@trpc/server/dist/vendor/unpromise/unpromise.mjs +0 -289
  61. package/.output/server/node_modules/@trpc/server/package.json +0 -156
  62. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6690
  63. package/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
  64. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -686
  65. package/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
  66. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1404
  67. package/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
  68. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1789
  69. package/.output/server/node_modules/@vue/reactivity/package.json +0 -55
  70. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6654
  71. package/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
  72. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1669
  73. package/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
  74. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -857
  75. package/.output/server/node_modules/@vue/server-renderer/package.json +0 -55
  76. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +0 -594
  77. package/.output/server/node_modules/@vue/shared/package.json +0 -47
  78. package/.output/server/node_modules/devalue/index.js +0 -3
  79. package/.output/server/node_modules/devalue/package.json +0 -34
  80. package/.output/server/node_modules/devalue/src/base64.js +0 -110
  81. package/.output/server/node_modules/devalue/src/constants.js +0 -6
  82. package/.output/server/node_modules/devalue/src/parse.js +0 -160
  83. package/.output/server/node_modules/devalue/src/stringify.js +0 -232
  84. package/.output/server/node_modules/devalue/src/uneval.js +0 -351
  85. package/.output/server/node_modules/devalue/src/utils.js +0 -113
  86. package/.output/server/node_modules/entities/lib/decode.js +0 -536
  87. package/.output/server/node_modules/entities/lib/decode_codepoint.js +0 -76
  88. package/.output/server/node_modules/entities/lib/generated/decode-data-html.js +0 -9
  89. package/.output/server/node_modules/entities/lib/generated/decode-data-xml.js +0 -9
  90. package/.output/server/node_modules/entities/package.json +0 -90
  91. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
  92. package/.output/server/node_modules/estree-walker/package.json +0 -37
  93. package/.output/server/node_modules/hookable/dist/index.mjs +0 -290
  94. package/.output/server/node_modules/hookable/package.json +0 -49
  95. package/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
  96. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  97. package/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
  98. package/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
  99. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
  100. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
  101. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  102. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  103. package/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
  104. package/.output/server/node_modules/source-map-js/lib/util.js +0 -594
  105. package/.output/server/node_modules/source-map-js/package.json +0 -71
  106. package/.output/server/node_modules/source-map-js/source-map.js +0 -8
  107. package/.output/server/node_modules/ufo/dist/index.mjs +0 -630
  108. package/.output/server/node_modules/ufo/package.json +0 -47
  109. package/.output/server/node_modules/unhead/dist/plugins.mjs +0 -94
  110. package/.output/server/node_modules/unhead/dist/server.mjs +0 -220
  111. package/.output/server/node_modules/unhead/dist/shared/unhead.C13swrCa.mjs +0 -48
  112. package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +0 -148
  113. package/.output/server/node_modules/unhead/dist/shared/unhead.Cp0iF6eN.mjs +0 -177
  114. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +0 -196
  115. package/.output/server/node_modules/unhead/dist/shared/unhead.DZbvapt-.mjs +0 -70
  116. package/.output/server/node_modules/unhead/dist/shared/unhead.DeCxexjU.mjs +0 -166
  117. package/.output/server/node_modules/unhead/dist/shared/unhead.Txd0XTIP.mjs +0 -172
  118. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +0 -38
  119. package/.output/server/node_modules/unhead/dist/utils.mjs +0 -5
  120. package/.output/server/node_modules/unhead/package.json +0 -101
  121. package/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
  122. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
  123. package/.output/server/node_modules/vue/index.js +0 -7
  124. package/.output/server/node_modules/vue/index.mjs +0 -1
  125. package/.output/server/node_modules/vue/package.json +0 -112
  126. package/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
  127. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -196
  128. package/.output/server/node_modules/vue-bundle-renderer/package.json +0 -50
  129. package/.output/server/node_modules/zod/lib/index.mjs +0 -4405
  130. package/.output/server/node_modules/zod/package.json +0 -122
  131. package/.output/server/package.json +0 -1
@@ -1,90 +0,0 @@
1
- import { TRPCError } from './error/TRPCError.mjs';
2
- import { isObject } from './utils.mjs';
3
-
4
- /** @internal */ const middlewareMarker = 'middlewareMarker';
5
- /**
6
- * @internal
7
- */ function createMiddlewareFactory() {
8
- function createMiddlewareInner(middlewares) {
9
- return {
10
- _middlewares: middlewares,
11
- unstable_pipe (middlewareBuilderOrFn) {
12
- const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
13
- middlewareBuilderOrFn
14
- ];
15
- return createMiddlewareInner([
16
- ...middlewares,
17
- ...pipedMiddleware
18
- ]);
19
- }
20
- };
21
- }
22
- function createMiddleware(fn) {
23
- return createMiddlewareInner([
24
- fn
25
- ]);
26
- }
27
- return createMiddleware;
28
- }
29
- /**
30
- * Create a standalone middleware
31
- * @see https://trpc.io/docs/v11/server/middlewares#experimental-standalone-middlewares
32
- * @deprecated use `.concat()` instead
33
- */ const experimental_standaloneMiddleware = ()=>({
34
- create: createMiddlewareFactory()
35
- });
36
- /**
37
- * @internal
38
- * Please note, `trpc-openapi` uses this function.
39
- */ function createInputMiddleware(parse) {
40
- const inputMiddleware = async function inputValidatorMiddleware(opts) {
41
- let parsedInput;
42
- const rawInput = await opts.getRawInput();
43
- try {
44
- parsedInput = await parse(rawInput);
45
- } catch (cause) {
46
- throw new TRPCError({
47
- code: 'BAD_REQUEST',
48
- cause
49
- });
50
- }
51
- // Multiple input parsers
52
- const combinedInput = isObject(opts.input) && isObject(parsedInput) ? {
53
- ...opts.input,
54
- ...parsedInput
55
- } : parsedInput;
56
- return opts.next({
57
- input: combinedInput
58
- });
59
- };
60
- inputMiddleware._type = 'input';
61
- return inputMiddleware;
62
- }
63
- /**
64
- * @internal
65
- */ function createOutputMiddleware(parse) {
66
- const outputMiddleware = async function outputValidatorMiddleware({ next }) {
67
- const result = await next();
68
- if (!result.ok) {
69
- // pass through failures without validating
70
- return result;
71
- }
72
- try {
73
- const data = await parse(result.data);
74
- return {
75
- ...result,
76
- data
77
- };
78
- } catch (cause) {
79
- throw new TRPCError({
80
- message: 'Output validation failed',
81
- code: 'INTERNAL_SERVER_ERROR',
82
- cause
83
- });
84
- }
85
- };
86
- outputMiddleware._type = 'output';
87
- return outputMiddleware;
88
- }
89
-
90
- export { createInputMiddleware, createMiddlewareFactory, createOutputMiddleware, experimental_standaloneMiddleware, middlewareMarker };
@@ -1,52 +0,0 @@
1
- import { StandardSchemaV1Error } from '../vendor/standard-schema-v1/error.mjs';
2
-
3
- function getParseFn(procedureParser) {
4
- const parser = procedureParser;
5
- const isStandardSchema = '~standard' in parser;
6
- if (typeof parser === 'function' && typeof parser.assert === 'function') {
7
- // ParserArkTypeEsque - arktype schemas shouldn't be called as a function because they return a union type instead of throwing
8
- return parser.assert.bind(parser);
9
- }
10
- if (typeof parser === 'function' && !isStandardSchema) {
11
- // ParserValibotEsque (>= v0.31.0)
12
- // ParserCustomValidatorEsque - note the check for standard-schema conformance - some libraries like `effect` use function schemas which are *not* a "parse" function.
13
- return parser;
14
- }
15
- if (typeof parser.parseAsync === 'function') {
16
- // ParserZodEsque
17
- return parser.parseAsync.bind(parser);
18
- }
19
- if (typeof parser.parse === 'function') {
20
- // ParserZodEsque
21
- // ParserValibotEsque (< v0.13.0)
22
- return parser.parse.bind(parser);
23
- }
24
- if (typeof parser.validateSync === 'function') {
25
- // ParserYupEsque
26
- return parser.validateSync.bind(parser);
27
- }
28
- if (typeof parser.create === 'function') {
29
- // ParserSuperstructEsque
30
- return parser.create.bind(parser);
31
- }
32
- if (typeof parser.assert === 'function') {
33
- // ParserScaleEsque
34
- return (value)=>{
35
- parser.assert(value);
36
- return value;
37
- };
38
- }
39
- if (isStandardSchema) {
40
- // StandardSchemaEsque
41
- return async (value)=>{
42
- const result = await parser['~standard'].validate(value);
43
- if (result.issues) {
44
- throw new StandardSchemaV1Error(result.issues);
45
- }
46
- return result.value;
47
- };
48
- }
49
- throw new Error('Could not find a validator fn');
50
- }
51
-
52
- export { getParseFn };
@@ -1,198 +0,0 @@
1
- import { TRPCError, getTRPCErrorFromUnknown } from './error/TRPCError.mjs';
2
- import { createOutputMiddleware, createInputMiddleware, middlewareMarker } from './middleware.mjs';
3
- import { getParseFn } from './parser.mjs';
4
- import { mergeWithoutOverrides } from './utils.mjs';
5
-
6
- function createNewBuilder(def1, def2) {
7
- const { middlewares = [], inputs, meta, ...rest } = def2;
8
- // TODO: maybe have a fn here to warn about calls
9
- return createBuilder({
10
- ...mergeWithoutOverrides(def1, rest),
11
- inputs: [
12
- ...def1.inputs,
13
- ...inputs ?? []
14
- ],
15
- middlewares: [
16
- ...def1.middlewares,
17
- ...middlewares
18
- ],
19
- meta: def1.meta && meta ? {
20
- ...def1.meta,
21
- ...meta
22
- } : meta ?? def1.meta
23
- });
24
- }
25
- function createBuilder(initDef = {}) {
26
- const _def = {
27
- procedure: true,
28
- inputs: [],
29
- middlewares: [],
30
- ...initDef
31
- };
32
- const builder = {
33
- _def,
34
- input (input) {
35
- const parser = getParseFn(input);
36
- return createNewBuilder(_def, {
37
- inputs: [
38
- input
39
- ],
40
- middlewares: [
41
- createInputMiddleware(parser)
42
- ]
43
- });
44
- },
45
- output (output) {
46
- const parser = getParseFn(output);
47
- return createNewBuilder(_def, {
48
- output,
49
- middlewares: [
50
- createOutputMiddleware(parser)
51
- ]
52
- });
53
- },
54
- meta (meta) {
55
- return createNewBuilder(_def, {
56
- meta
57
- });
58
- },
59
- use (middlewareBuilderOrFn) {
60
- // Distinguish between a middleware builder and a middleware function
61
- const middlewares = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
62
- middlewareBuilderOrFn
63
- ];
64
- return createNewBuilder(_def, {
65
- middlewares: middlewares
66
- });
67
- },
68
- unstable_concat (builder) {
69
- return createNewBuilder(_def, builder._def);
70
- },
71
- concat (builder) {
72
- return createNewBuilder(_def, builder._def);
73
- },
74
- query (resolver) {
75
- return createResolver({
76
- ..._def,
77
- type: 'query'
78
- }, resolver);
79
- },
80
- mutation (resolver) {
81
- return createResolver({
82
- ..._def,
83
- type: 'mutation'
84
- }, resolver);
85
- },
86
- subscription (resolver) {
87
- return createResolver({
88
- ..._def,
89
- type: 'subscription'
90
- }, resolver);
91
- },
92
- experimental_caller (caller) {
93
- return createNewBuilder(_def, {
94
- caller
95
- });
96
- }
97
- };
98
- return builder;
99
- }
100
- function createResolver(_defIn, resolver) {
101
- const finalBuilder = createNewBuilder(_defIn, {
102
- resolver,
103
- middlewares: [
104
- async function resolveMiddleware(opts) {
105
- const data = await resolver(opts);
106
- return {
107
- marker: middlewareMarker,
108
- ok: true,
109
- data,
110
- ctx: opts.ctx
111
- };
112
- }
113
- ]
114
- });
115
- const _def = {
116
- ...finalBuilder._def,
117
- type: _defIn.type,
118
- experimental_caller: Boolean(finalBuilder._def.caller),
119
- meta: finalBuilder._def.meta,
120
- $types: null
121
- };
122
- const invoke = createProcedureCaller(finalBuilder._def);
123
- const callerOverride = finalBuilder._def.caller;
124
- if (!callerOverride) {
125
- return invoke;
126
- }
127
- const callerWrapper = async (...args)=>{
128
- return await callerOverride({
129
- args,
130
- invoke,
131
- _def: _def
132
- });
133
- };
134
- callerWrapper._def = _def;
135
- return callerWrapper;
136
- }
137
- const codeblock = `
138
- This is a client-only function.
139
- If you want to call this function on the server, see https://trpc.io/docs/v11/server/server-side-calls
140
- `.trim();
141
- // run the middlewares recursively with the resolver as the last one
142
- async function callRecursive(index, _def, opts) {
143
- try {
144
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
145
- const middleware = _def.middlewares[index];
146
- const result = await middleware({
147
- ...opts,
148
- meta: _def.meta,
149
- input: opts.input,
150
- next (_nextOpts) {
151
- const nextOpts = _nextOpts;
152
- return callRecursive(index + 1, _def, {
153
- ...opts,
154
- ctx: nextOpts?.ctx ? {
155
- ...opts.ctx,
156
- ...nextOpts.ctx
157
- } : opts.ctx,
158
- input: nextOpts && 'input' in nextOpts ? nextOpts.input : opts.input,
159
- getRawInput: nextOpts?.getRawInput ?? opts.getRawInput
160
- });
161
- }
162
- });
163
- return result;
164
- } catch (cause) {
165
- return {
166
- ok: false,
167
- error: getTRPCErrorFromUnknown(cause),
168
- marker: middlewareMarker
169
- };
170
- }
171
- }
172
- function createProcedureCaller(_def) {
173
- async function procedure(opts) {
174
- // is direct server-side call
175
- if (!opts || !('getRawInput' in opts)) {
176
- throw new Error(codeblock);
177
- }
178
- // there's always at least one "next" since we wrap this.resolver in a middleware
179
- const result = await callRecursive(0, _def, opts);
180
- if (!result) {
181
- throw new TRPCError({
182
- code: 'INTERNAL_SERVER_ERROR',
183
- message: 'No result from middlewares - did you forget to `return next()`?'
184
- });
185
- }
186
- if (!result.ok) {
187
- // re-throw original error
188
- throw result.error;
189
- }
190
- return result.data;
191
- }
192
- procedure._def = _def;
193
- procedure.procedure = true;
194
- // FIXME typecast shouldn't be needed - fixittt
195
- return procedure;
196
- }
197
-
198
- export { createBuilder };
@@ -1,6 +0,0 @@
1
- /**
2
- * The default check to see if we're in a server
3
- */ const isServerDefault = typeof window === 'undefined' || 'Deno' in window || // eslint-disable-next-line @typescript-eslint/dot-notation
4
- globalThis.process?.env?.['NODE_ENV'] === 'test' || !!globalThis.process?.env?.['JEST_WORKER_ID'] || !!globalThis.process?.env?.['VITEST_WORKER_ID'];
5
-
6
- export { isServerDefault };
@@ -1,278 +0,0 @@
1
- import { createRecursiveProxy } from './createProxy.mjs';
2
- import { defaultFormatter } from './error/formatter.mjs';
3
- import { TRPCError, getTRPCErrorFromUnknown } from './error/TRPCError.mjs';
4
- import { defaultTransformer } from './transformer.mjs';
5
- import { mergeWithoutOverrides, omitPrototype, isObject, isFunction } from './utils.mjs';
6
-
7
- const lazySymbol = Symbol('lazy');
8
- function once(fn) {
9
- const uncalled = Symbol();
10
- let result = uncalled;
11
- return ()=>{
12
- if (result === uncalled) {
13
- result = fn();
14
- }
15
- return result;
16
- };
17
- }
18
- /**
19
- * Lazy load a router
20
- * @see https://trpc.io/docs/server/merging-routers#lazy-load
21
- */ function lazy(importRouter) {
22
- async function resolve() {
23
- const mod = await importRouter();
24
- // if the module is a router, return it
25
- if (isRouter(mod)) {
26
- return mod;
27
- }
28
- const routers = Object.values(mod);
29
- if (routers.length !== 1 || !isRouter(routers[0])) {
30
- throw new Error("Invalid router module - either define exactly 1 export or return the router directly.\nExample: `lazy(() => import('./slow.js').then((m) => m.slowRouter))`");
31
- }
32
- return routers[0];
33
- }
34
- resolve[lazySymbol] = true;
35
- return resolve;
36
- }
37
- function isLazy(input) {
38
- return typeof input === 'function' && lazySymbol in input;
39
- }
40
- function isRouter(value) {
41
- return isObject(value) && isObject(value['_def']) && 'router' in value['_def'];
42
- }
43
- const emptyRouter = {
44
- _ctx: null,
45
- _errorShape: null,
46
- _meta: null,
47
- queries: {},
48
- mutations: {},
49
- subscriptions: {},
50
- errorFormatter: defaultFormatter,
51
- transformer: defaultTransformer
52
- };
53
- /**
54
- * Reserved words that can't be used as router or procedure names
55
- */ const reservedWords = [
56
- /**
57
- * Then is a reserved word because otherwise we can't return a promise that returns a Proxy
58
- * since JS will think that `.then` is something that exists
59
- */ 'then',
60
- /**
61
- * `fn.call()` and `fn.apply()` are reserved words because otherwise we can't call a function using `.call` or `.apply`
62
- */ 'call',
63
- 'apply'
64
- ];
65
- /**
66
- * @internal
67
- */ function createRouterFactory(config) {
68
- function createRouterInner(input) {
69
- const reservedWordsUsed = new Set(Object.keys(input).filter((v)=>reservedWords.includes(v)));
70
- if (reservedWordsUsed.size > 0) {
71
- throw new Error('Reserved words used in `router({})` call: ' + Array.from(reservedWordsUsed).join(', '));
72
- }
73
- const procedures = omitPrototype({});
74
- const lazy = omitPrototype({});
75
- function createLazyLoader(opts) {
76
- return {
77
- ref: opts.ref,
78
- load: once(async ()=>{
79
- const router = await opts.ref();
80
- const lazyPath = [
81
- ...opts.path,
82
- opts.key
83
- ];
84
- const lazyKey = lazyPath.join('.');
85
- opts.aggregate[opts.key] = step(router._def.record, lazyPath);
86
- delete lazy[lazyKey];
87
- // add lazy loaders for nested routers
88
- for (const [nestedKey, nestedItem] of Object.entries(router._def.lazy)){
89
- const nestedRouterKey = [
90
- ...lazyPath,
91
- nestedKey
92
- ].join('.');
93
- // console.log('adding lazy', nestedRouterKey);
94
- lazy[nestedRouterKey] = createLazyLoader({
95
- ref: nestedItem.ref,
96
- path: lazyPath,
97
- key: nestedKey,
98
- aggregate: opts.aggregate[opts.key]
99
- });
100
- }
101
- })
102
- };
103
- }
104
- function step(from, path = []) {
105
- const aggregate = omitPrototype({});
106
- for (const [key, item] of Object.entries(from ?? {})){
107
- if (isLazy(item)) {
108
- lazy[[
109
- ...path,
110
- key
111
- ].join('.')] = createLazyLoader({
112
- path,
113
- ref: item,
114
- key,
115
- aggregate
116
- });
117
- continue;
118
- }
119
- if (isRouter(item)) {
120
- aggregate[key] = step(item._def.record, [
121
- ...path,
122
- key
123
- ]);
124
- continue;
125
- }
126
- if (!isProcedure(item)) {
127
- // RouterRecord
128
- aggregate[key] = step(item, [
129
- ...path,
130
- key
131
- ]);
132
- continue;
133
- }
134
- const newPath = [
135
- ...path,
136
- key
137
- ].join('.');
138
- if (procedures[newPath]) {
139
- throw new Error(`Duplicate key: ${newPath}`);
140
- }
141
- procedures[newPath] = item;
142
- aggregate[key] = item;
143
- }
144
- return aggregate;
145
- }
146
- const record = step(input);
147
- const _def = {
148
- _config: config,
149
- router: true,
150
- procedures,
151
- lazy,
152
- ...emptyRouter,
153
- record
154
- };
155
- const router = {
156
- ...record,
157
- _def,
158
- createCaller: createCallerFactory()({
159
- _def
160
- })
161
- };
162
- return router;
163
- }
164
- return createRouterInner;
165
- }
166
- function isProcedure(procedureOrRouter) {
167
- return typeof procedureOrRouter === 'function';
168
- }
169
- /**
170
- * @internal
171
- */ async function getProcedureAtPath(router, path) {
172
- const { _def } = router;
173
- let procedure = _def.procedures[path];
174
- while(!procedure){
175
- const key = Object.keys(_def.lazy).find((key)=>path.startsWith(key));
176
- // console.log(`found lazy: ${key ?? 'NOPE'} (fullPath: ${fullPath})`);
177
- if (!key) {
178
- return null;
179
- }
180
- // console.log('loading', key, '.......');
181
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
182
- const lazyRouter = _def.lazy[key];
183
- await lazyRouter.load();
184
- procedure = _def.procedures[path];
185
- }
186
- return procedure;
187
- }
188
- /**
189
- * @internal
190
- */ async function callProcedure(opts) {
191
- const { type, path } = opts;
192
- const proc = await getProcedureAtPath(opts.router, path);
193
- if (!proc || !isProcedure(proc) || proc._def.type !== type && !opts.allowMethodOverride) {
194
- throw new TRPCError({
195
- code: 'NOT_FOUND',
196
- message: `No "${type}"-procedure on path "${path}"`
197
- });
198
- }
199
- /* istanbul ignore if -- @preserve */ if (proc._def.type !== type && opts.allowMethodOverride && proc._def.type === 'subscription') {
200
- throw new TRPCError({
201
- code: 'METHOD_NOT_SUPPORTED',
202
- message: `Method override is not supported for subscriptions`
203
- });
204
- }
205
- return proc(opts);
206
- }
207
- function createCallerFactory() {
208
- return function createCallerInner(router) {
209
- const { _def } = router;
210
- return function createCaller(ctxOrCallback, opts) {
211
- return createRecursiveProxy(async ({ path, args })=>{
212
- const fullPath = path.join('.');
213
- if (path.length === 1 && path[0] === '_def') {
214
- return _def;
215
- }
216
- const procedure = await getProcedureAtPath(router, fullPath);
217
- let ctx = undefined;
218
- try {
219
- if (!procedure) {
220
- throw new TRPCError({
221
- code: 'NOT_FOUND',
222
- message: `No procedure found on path "${path}"`
223
- });
224
- }
225
- ctx = isFunction(ctxOrCallback) ? await Promise.resolve(ctxOrCallback()) : ctxOrCallback;
226
- return await procedure({
227
- path: fullPath,
228
- getRawInput: async ()=>args[0],
229
- ctx,
230
- type: procedure._def.type,
231
- signal: opts?.signal
232
- });
233
- } catch (cause) {
234
- opts?.onError?.({
235
- ctx,
236
- error: getTRPCErrorFromUnknown(cause),
237
- input: args[0],
238
- path: fullPath,
239
- type: procedure?._def.type ?? 'unknown'
240
- });
241
- throw cause;
242
- }
243
- });
244
- };
245
- };
246
- }
247
- function mergeRouters(...routerList) {
248
- const record = mergeWithoutOverrides({}, ...routerList.map((r)=>r._def.record));
249
- const errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter)=>{
250
- if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {
251
- if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) {
252
- throw new Error('You seem to have several error formatters');
253
- }
254
- return nextRouter._def._config.errorFormatter;
255
- }
256
- return currentErrorFormatter;
257
- }, defaultFormatter);
258
- const transformer = routerList.reduce((prev, current)=>{
259
- if (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {
260
- if (prev !== defaultTransformer && prev !== current._def._config.transformer) {
261
- throw new Error('You seem to have several transformers');
262
- }
263
- return current._def._config.transformer;
264
- }
265
- return prev;
266
- }, defaultTransformer);
267
- const router = createRouterFactory({
268
- errorFormatter,
269
- transformer,
270
- isDev: routerList.every((r)=>r._def._config.isDev),
271
- allowOutsideOfServer: routerList.every((r)=>r._def._config.allowOutsideOfServer),
272
- isServer: routerList.every((r)=>r._def._config.isServer),
273
- $types: routerList[0]?._def._config.$types
274
- })(record);
275
- return router;
276
- }
277
-
278
- export { callProcedure, createCallerFactory, createRouterFactory, getProcedureAtPath, lazy, mergeRouters };
@@ -1,54 +0,0 @@
1
- // reference: https://www.jsonrpc.org/specification
2
- /**
3
- * JSON-RPC 2.0 Error codes
4
- *
5
- * `-32000` to `-32099` are reserved for implementation-defined server-errors.
6
- * For tRPC we're copying the last digits of HTTP 4XX errors.
7
- */ const TRPC_ERROR_CODES_BY_KEY = {
8
- /**
9
- * Invalid JSON was received by the server.
10
- * An error occurred on the server while parsing the JSON text.
11
- */ PARSE_ERROR: -32700,
12
- /**
13
- * The JSON sent is not a valid Request object.
14
- */ BAD_REQUEST: -32600,
15
- // Internal JSON-RPC error
16
- INTERNAL_SERVER_ERROR: -32603,
17
- NOT_IMPLEMENTED: -32603,
18
- BAD_GATEWAY: -32603,
19
- SERVICE_UNAVAILABLE: -32603,
20
- GATEWAY_TIMEOUT: -32603,
21
- // Implementation specific errors
22
- UNAUTHORIZED: -32001,
23
- FORBIDDEN: -32003,
24
- NOT_FOUND: -32004,
25
- METHOD_NOT_SUPPORTED: -32005,
26
- TIMEOUT: -32008,
27
- CONFLICT: -32009,
28
- PRECONDITION_FAILED: -32012,
29
- PAYLOAD_TOO_LARGE: -32013,
30
- UNSUPPORTED_MEDIA_TYPE: -32015,
31
- UNPROCESSABLE_CONTENT: -32022,
32
- TOO_MANY_REQUESTS: -32029,
33
- CLIENT_CLOSED_REQUEST: -32099
34
- };
35
- // pure
36
- const TRPC_ERROR_CODES_BY_NUMBER = {
37
- [-32700]: 'PARSE_ERROR',
38
- [-32600]: 'BAD_REQUEST',
39
- [-32603]: 'INTERNAL_SERVER_ERROR',
40
- [-32001]: 'UNAUTHORIZED',
41
- [-32003]: 'FORBIDDEN',
42
- [-32004]: 'NOT_FOUND',
43
- [-32005]: 'METHOD_NOT_SUPPORTED',
44
- [-32008]: 'TIMEOUT',
45
- [-32009]: 'CONFLICT',
46
- [-32012]: 'PRECONDITION_FAILED',
47
- [-32013]: 'PAYLOAD_TOO_LARGE',
48
- [-32015]: 'UNSUPPORTED_MEDIA_TYPE',
49
- [-32022]: 'UNPROCESSABLE_CONTENT',
50
- [-32029]: 'TOO_MANY_REQUESTS',
51
- [-32099]: 'CLIENT_CLOSED_REQUEST'
52
- };
53
-
54
- export { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER };