@jlnstack/procedure 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 (63) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.cjs +14 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.mjs +14 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.cjs +27 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs +27 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.cjs +16 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.mjs +16 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.cjs +11 -0
  10. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.mjs +11 -0
  11. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.cjs +18 -0
  12. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.mjs +12 -0
  13. package/dist/core-internal.cjs +71 -0
  14. package/dist/core-internal.d.cts +33 -0
  15. package/dist/core-internal.d.cts.map +1 -0
  16. package/dist/core-internal.d.mts +33 -0
  17. package/dist/core-internal.d.mts.map +1 -0
  18. package/dist/core-internal.mjs +71 -0
  19. package/dist/core-internal.mjs.map +1 -0
  20. package/dist/core.cjs +12 -0
  21. package/dist/core.d.cts +15 -0
  22. package/dist/core.d.cts.map +1 -0
  23. package/dist/core.d.mts +15 -0
  24. package/dist/core.d.mts.map +1 -0
  25. package/dist/core.mjs +13 -0
  26. package/dist/core.mjs.map +1 -0
  27. package/dist/index.cjs +3 -0
  28. package/dist/index.d.cts +2 -0
  29. package/dist/index.d.mts +2 -0
  30. package/dist/index.mjs +3 -0
  31. package/dist/next.cjs +45 -0
  32. package/dist/next.d.cts +47 -0
  33. package/dist/next.d.cts.map +1 -0
  34. package/dist/next.d.mts +47 -0
  35. package/dist/next.d.mts.map +1 -0
  36. package/dist/next.mjs +46 -0
  37. package/dist/next.mjs.map +1 -0
  38. package/dist/react.cjs +25 -0
  39. package/dist/react.d.cts +20 -0
  40. package/dist/react.d.cts.map +1 -0
  41. package/dist/react.d.mts +20 -0
  42. package/dist/react.d.mts.map +1 -0
  43. package/dist/react.mjs +26 -0
  44. package/dist/react.mjs.map +1 -0
  45. package/dist/types.d.cts +6 -0
  46. package/dist/types.d.cts.map +1 -0
  47. package/dist/types.d.mts +6 -0
  48. package/dist/types.d.mts.map +1 -0
  49. package/package.json +64 -0
  50. package/src/core-internal.ts +206 -0
  51. package/src/core.ts +29 -0
  52. package/src/index.ts +1 -0
  53. package/src/next.ts +161 -0
  54. package/src/react.ts +66 -0
  55. package/src/types.ts +4 -0
  56. package/test/core.test-d.ts +89 -0
  57. package/test/core.test.ts +57 -0
  58. package/test/next.test-d.ts +177 -0
  59. package/test/next.test.ts +230 -0
  60. package/tsconfig.build.json +7 -0
  61. package/tsconfig.json +5 -0
  62. package/tsdown.config.ts +23 -0
  63. package/vitest.config.ts +10 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @jlnstack/procedure
2
+
3
+ ## 0.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 2e5f939: release
package/README.md ADDED
@@ -0,0 +1 @@
1
+ #
@@ -0,0 +1,14 @@
1
+ const require_toPropertyKey = require('./toPropertyKey.cjs');
2
+
3
+ //#region \0@oxc-project+runtime@0.103.0/helpers/defineProperty.js
4
+ function _defineProperty(e, r, t) {
5
+ return (r = require_toPropertyKey.toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
6
+ value: t,
7
+ enumerable: !0,
8
+ configurable: !0,
9
+ writable: !0
10
+ }) : e[r] = t, e;
11
+ }
12
+
13
+ //#endregion
14
+ exports._defineProperty = _defineProperty;
@@ -0,0 +1,14 @@
1
+ import { toPropertyKey } from "./toPropertyKey.mjs";
2
+
3
+ //#region \0@oxc-project+runtime@0.103.0/helpers/defineProperty.js
4
+ function _defineProperty(e, r, t) {
5
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
6
+ value: t,
7
+ enumerable: !0,
8
+ configurable: !0,
9
+ writable: !0
10
+ }) : e[r] = t, e;
11
+ }
12
+
13
+ //#endregion
14
+ export { _defineProperty };
@@ -0,0 +1,27 @@
1
+ const require_defineProperty = require('./defineProperty.cjs');
2
+
3
+ //#region \0@oxc-project+runtime@0.103.0/helpers/objectSpread2.js
4
+ function ownKeys(e, r) {
5
+ var t = Object.keys(e);
6
+ if (Object.getOwnPropertySymbols) {
7
+ var o = Object.getOwnPropertySymbols(e);
8
+ r && (o = o.filter(function(r$1) {
9
+ return Object.getOwnPropertyDescriptor(e, r$1).enumerable;
10
+ })), t.push.apply(t, o);
11
+ }
12
+ return t;
13
+ }
14
+ function _objectSpread2(e) {
15
+ for (var r = 1; r < arguments.length; r++) {
16
+ var t = null != arguments[r] ? arguments[r] : {};
17
+ r % 2 ? ownKeys(Object(t), !0).forEach(function(r$1) {
18
+ require_defineProperty._defineProperty(e, r$1, t[r$1]);
19
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r$1) {
20
+ Object.defineProperty(e, r$1, Object.getOwnPropertyDescriptor(t, r$1));
21
+ });
22
+ }
23
+ return e;
24
+ }
25
+
26
+ //#endregion
27
+ exports._objectSpread2 = _objectSpread2;
@@ -0,0 +1,27 @@
1
+ import { _defineProperty } from "./defineProperty.mjs";
2
+
3
+ //#region \0@oxc-project+runtime@0.103.0/helpers/objectSpread2.js
4
+ function ownKeys(e, r) {
5
+ var t = Object.keys(e);
6
+ if (Object.getOwnPropertySymbols) {
7
+ var o = Object.getOwnPropertySymbols(e);
8
+ r && (o = o.filter(function(r$1) {
9
+ return Object.getOwnPropertyDescriptor(e, r$1).enumerable;
10
+ })), t.push.apply(t, o);
11
+ }
12
+ return t;
13
+ }
14
+ function _objectSpread2(e) {
15
+ for (var r = 1; r < arguments.length; r++) {
16
+ var t = null != arguments[r] ? arguments[r] : {};
17
+ r % 2 ? ownKeys(Object(t), !0).forEach(function(r$1) {
18
+ _defineProperty(e, r$1, t[r$1]);
19
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r$1) {
20
+ Object.defineProperty(e, r$1, Object.getOwnPropertyDescriptor(t, r$1));
21
+ });
22
+ }
23
+ return e;
24
+ }
25
+
26
+ //#endregion
27
+ export { _objectSpread2 };
@@ -0,0 +1,16 @@
1
+ const require_typeof = require('./typeof.cjs');
2
+
3
+ //#region \0@oxc-project+runtime@0.103.0/helpers/toPrimitive.js
4
+ function toPrimitive(t, r) {
5
+ if ("object" != require_typeof._typeof(t) || !t) return t;
6
+ var e = t[Symbol.toPrimitive];
7
+ if (void 0 !== e) {
8
+ var i = e.call(t, r || "default");
9
+ if ("object" != require_typeof._typeof(i)) return i;
10
+ throw new TypeError("@@toPrimitive must return a primitive value.");
11
+ }
12
+ return ("string" === r ? String : Number)(t);
13
+ }
14
+
15
+ //#endregion
16
+ exports.toPrimitive = toPrimitive;
@@ -0,0 +1,16 @@
1
+ import { _typeof } from "./typeof.mjs";
2
+
3
+ //#region \0@oxc-project+runtime@0.103.0/helpers/toPrimitive.js
4
+ function toPrimitive(t, r) {
5
+ if ("object" != _typeof(t) || !t) return t;
6
+ var e = t[Symbol.toPrimitive];
7
+ if (void 0 !== e) {
8
+ var i = e.call(t, r || "default");
9
+ if ("object" != _typeof(i)) return i;
10
+ throw new TypeError("@@toPrimitive must return a primitive value.");
11
+ }
12
+ return ("string" === r ? String : Number)(t);
13
+ }
14
+
15
+ //#endregion
16
+ export { toPrimitive };
@@ -0,0 +1,11 @@
1
+ const require_typeof = require('./typeof.cjs');
2
+ const require_toPrimitive = require('./toPrimitive.cjs');
3
+
4
+ //#region \0@oxc-project+runtime@0.103.0/helpers/toPropertyKey.js
5
+ function toPropertyKey(t) {
6
+ var i = require_toPrimitive.toPrimitive(t, "string");
7
+ return "symbol" == require_typeof._typeof(i) ? i : i + "";
8
+ }
9
+
10
+ //#endregion
11
+ exports.toPropertyKey = toPropertyKey;
@@ -0,0 +1,11 @@
1
+ import { _typeof } from "./typeof.mjs";
2
+ import { toPrimitive } from "./toPrimitive.mjs";
3
+
4
+ //#region \0@oxc-project+runtime@0.103.0/helpers/toPropertyKey.js
5
+ function toPropertyKey(t) {
6
+ var i = toPrimitive(t, "string");
7
+ return "symbol" == _typeof(i) ? i : i + "";
8
+ }
9
+
10
+ //#endregion
11
+ export { toPropertyKey };
@@ -0,0 +1,18 @@
1
+
2
+ //#region \0@oxc-project+runtime@0.103.0/helpers/typeof.js
3
+ function _typeof(o) {
4
+ "@babel/helpers - typeof";
5
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
6
+ return typeof o$1;
7
+ } : function(o$1) {
8
+ return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
9
+ }, _typeof(o);
10
+ }
11
+
12
+ //#endregion
13
+ Object.defineProperty(exports, '_typeof', {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _typeof;
17
+ }
18
+ });
@@ -0,0 +1,12 @@
1
+ //#region \0@oxc-project+runtime@0.103.0/helpers/typeof.js
2
+ function _typeof(o) {
3
+ "@babel/helpers - typeof";
4
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
5
+ return typeof o$1;
6
+ } : function(o$1) {
7
+ return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
8
+ }, _typeof(o);
9
+ }
10
+
11
+ //#endregion
12
+ export { _typeof };
@@ -0,0 +1,71 @@
1
+ const require_objectSpread2 = require('./_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.cjs');
2
+
3
+ //#region src/core-internal.ts
4
+ const createProcedureBuilder = (middlewares, factory) => {
5
+ const create = factory !== null && factory !== void 0 ? factory : createProcedureBuilder;
6
+ return {
7
+ use: (middleware) => {
8
+ if (Array.isArray(middleware)) {
9
+ const combined = async ({ input, ctx, next }) => {
10
+ return next({ ctx: (await Promise.all(middleware.map((mw) => mw({
11
+ input,
12
+ ctx,
13
+ next: (opts) => Promise.resolve({
14
+ result: void 0,
15
+ ctx: opts.ctx
16
+ })
17
+ })))).reduce((acc, r) => require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, acc), r.ctx), ctx) });
18
+ };
19
+ return create([...middlewares, { run: combined }], factory);
20
+ }
21
+ return create([...middlewares, { run: middleware }], factory);
22
+ },
23
+ input(schema) {
24
+ return create([createInputMiddleware(schema), ...middlewares], factory);
25
+ },
26
+ run(fn) {
27
+ return (async (input) => {
28
+ const executeProcedure = async (index, ctx) => {
29
+ if (index >= middlewares.length) return Promise.resolve(fn({
30
+ ctx,
31
+ input
32
+ })).then((result$1) => ({
33
+ result: result$1,
34
+ ctx
35
+ }));
36
+ const mw = middlewares[index];
37
+ if (!mw) return Promise.resolve(fn({
38
+ ctx,
39
+ input
40
+ })).then((result$1) => ({
41
+ result: result$1,
42
+ ctx
43
+ }));
44
+ return Promise.resolve(mw.run({
45
+ input,
46
+ ctx,
47
+ next: (opts) => {
48
+ return executeProcedure(index + 1, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, ctx !== null && ctx !== void 0 ? ctx : {}), opts.ctx)).then((result$1) => require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, result$1), {}, { ctx: opts.ctx }));
49
+ }
50
+ }));
51
+ };
52
+ const { result } = await executeProcedure(0, void 0);
53
+ return result;
54
+ });
55
+ }
56
+ };
57
+ };
58
+ function createInputMiddleware(schema) {
59
+ return createMiddleware("INPUT_VALIDATION", async (opts) => {
60
+ if ((await schema["~standard"].validate(opts.input)).issues) throw new Error("Input validation failed");
61
+ return opts.next({ ctx: opts.ctx });
62
+ });
63
+ }
64
+ const createMiddleware = (id, fn) => ({
65
+ id,
66
+ run: fn
67
+ });
68
+
69
+ //#endregion
70
+ exports.createMiddleware = createMiddleware;
71
+ exports.createProcedureBuilder = createProcedureBuilder;
@@ -0,0 +1,33 @@
1
+ import { Awaitable, Prettify } from "./types.cjs";
2
+ import { StandardSchemaV1 } from "@standard-schema/spec";
3
+
4
+ //#region src/core-internal.d.ts
5
+ interface MiddlewareResult<TCtx> {
6
+ result: unknown;
7
+ ctx: TCtx;
8
+ }
9
+ type Middleware<TInput, TContext, TResult> = (args: {
10
+ input: TInput;
11
+ ctx: TContext;
12
+ next: <T>(opts: {
13
+ ctx: T;
14
+ }) => Awaitable<MiddlewareResult<T>>;
15
+ }) => Awaitable<MiddlewareResult<TResult>>;
16
+ type InferMiddlewareOutput<T> = T extends Middleware<any, any, infer O> ? O : never;
17
+ type InferMiddlewareArrayOutput<T extends readonly Middleware<any, any, any>[]> = T extends readonly [infer First, ...infer Rest] ? First extends Middleware<any, any, infer O> ? Rest extends readonly Middleware<any, any, any>[] ? Prettify<O & InferMiddlewareArrayOutput<Rest>> : O : never : {};
18
+ type InferMiddlewareArrayInput<T extends readonly Middleware<any, any, any>[]> = T extends readonly [infer First, ...infer Rest] ? First extends Middleware<infer I, any, any> ? Rest extends readonly Middleware<any, any, any>[] ? MergeInput<I, InferMiddlewareArrayInput<Rest>> : I : never : Record<string, never>;
19
+ type MergeInput<A, B> = Prettify<(A extends Record<string, never> | undefined ? {} : A) & (B extends Record<string, never> | undefined ? {} : B)>;
20
+ interface ProcedureBuilder<TContext, TInput = Record<string, never>> {
21
+ use<TInputExt, TMiddleware extends Middleware<TInputExt, TContext, any>>(middleware: TMiddleware): ProcedureBuilder<InferMiddlewareOutput<TMiddleware>, MergeInput<TInput, TInputExt>>;
22
+ use<TMiddlewares extends readonly Middleware<any, TContext, any>[]>(middlewares: [...TMiddlewares]): ProcedureBuilder<InferMiddlewareArrayOutput<TMiddlewares>, MergeInput<TInput, InferMiddlewareArrayInput<TMiddlewares>>>;
23
+ input<TSchema extends StandardSchemaV1>(schema: TSchema): ProcedureBuilder<TContext, MergeInput<TInput, StandardSchemaV1.InferInput<TSchema>>>;
24
+ run: Run<TContext, TInput>;
25
+ }
26
+ type IsPartialObject<T> = T extends object ? {} extends T ? true : false : false;
27
+ type Run<TContext, TInput = Record<string, never>, TResultConstraint = unknown> = <TResult extends TResultConstraint>(fn: (args: {
28
+ input: TInput;
29
+ ctx: TContext;
30
+ }) => Awaitable<TResult>) => TInput extends Record<string, never> | undefined ? () => Promise<TResult> : IsPartialObject<TInput> extends true ? (input?: TInput) => Promise<TResult> : (input: TInput) => Promise<TResult>;
31
+ //#endregion
32
+ export { InferMiddlewareArrayInput, InferMiddlewareArrayOutput, InferMiddlewareOutput, MergeInput, Middleware, ProcedureBuilder, Run };
33
+ //# sourceMappingURL=core-internal.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-internal.d.cts","names":[],"sources":["../src/core-internal.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Awaitable, Prettify } from "./types.mjs";
2
+ import { StandardSchemaV1 } from "@standard-schema/spec";
3
+
4
+ //#region src/core-internal.d.ts
5
+ interface MiddlewareResult<TCtx> {
6
+ result: unknown;
7
+ ctx: TCtx;
8
+ }
9
+ type Middleware<TInput, TContext, TResult> = (args: {
10
+ input: TInput;
11
+ ctx: TContext;
12
+ next: <T>(opts: {
13
+ ctx: T;
14
+ }) => Awaitable<MiddlewareResult<T>>;
15
+ }) => Awaitable<MiddlewareResult<TResult>>;
16
+ type InferMiddlewareOutput<T> = T extends Middleware<any, any, infer O> ? O : never;
17
+ type InferMiddlewareArrayOutput<T extends readonly Middleware<any, any, any>[]> = T extends readonly [infer First, ...infer Rest] ? First extends Middleware<any, any, infer O> ? Rest extends readonly Middleware<any, any, any>[] ? Prettify<O & InferMiddlewareArrayOutput<Rest>> : O : never : {};
18
+ type InferMiddlewareArrayInput<T extends readonly Middleware<any, any, any>[]> = T extends readonly [infer First, ...infer Rest] ? First extends Middleware<infer I, any, any> ? Rest extends readonly Middleware<any, any, any>[] ? MergeInput<I, InferMiddlewareArrayInput<Rest>> : I : never : Record<string, never>;
19
+ type MergeInput<A, B> = Prettify<(A extends Record<string, never> | undefined ? {} : A) & (B extends Record<string, never> | undefined ? {} : B)>;
20
+ interface ProcedureBuilder<TContext, TInput = Record<string, never>> {
21
+ use<TInputExt, TMiddleware extends Middleware<TInputExt, TContext, any>>(middleware: TMiddleware): ProcedureBuilder<InferMiddlewareOutput<TMiddleware>, MergeInput<TInput, TInputExt>>;
22
+ use<TMiddlewares extends readonly Middleware<any, TContext, any>[]>(middlewares: [...TMiddlewares]): ProcedureBuilder<InferMiddlewareArrayOutput<TMiddlewares>, MergeInput<TInput, InferMiddlewareArrayInput<TMiddlewares>>>;
23
+ input<TSchema extends StandardSchemaV1>(schema: TSchema): ProcedureBuilder<TContext, MergeInput<TInput, StandardSchemaV1.InferInput<TSchema>>>;
24
+ run: Run<TContext, TInput>;
25
+ }
26
+ type IsPartialObject<T> = T extends object ? {} extends T ? true : false : false;
27
+ type Run<TContext, TInput = Record<string, never>, TResultConstraint = unknown> = <TResult extends TResultConstraint>(fn: (args: {
28
+ input: TInput;
29
+ ctx: TContext;
30
+ }) => Awaitable<TResult>) => TInput extends Record<string, never> | undefined ? () => Promise<TResult> : IsPartialObject<TInput> extends true ? (input?: TInput) => Promise<TResult> : (input: TInput) => Promise<TResult>;
31
+ //#endregion
32
+ export { InferMiddlewareArrayInput, InferMiddlewareArrayOutput, InferMiddlewareOutput, MergeInput, Middleware, ProcedureBuilder, Run };
33
+ //# sourceMappingURL=core-internal.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-internal.d.mts","names":[],"sources":["../src/core-internal.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { _objectSpread2 } from "./_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs";
2
+
3
+ //#region src/core-internal.ts
4
+ const createProcedureBuilder = (middlewares, factory) => {
5
+ const create = factory !== null && factory !== void 0 ? factory : createProcedureBuilder;
6
+ return {
7
+ use: (middleware) => {
8
+ if (Array.isArray(middleware)) {
9
+ const combined = async ({ input, ctx, next }) => {
10
+ return next({ ctx: (await Promise.all(middleware.map((mw) => mw({
11
+ input,
12
+ ctx,
13
+ next: (opts) => Promise.resolve({
14
+ result: void 0,
15
+ ctx: opts.ctx
16
+ })
17
+ })))).reduce((acc, r) => _objectSpread2(_objectSpread2({}, acc), r.ctx), ctx) });
18
+ };
19
+ return create([...middlewares, { run: combined }], factory);
20
+ }
21
+ return create([...middlewares, { run: middleware }], factory);
22
+ },
23
+ input(schema) {
24
+ return create([createInputMiddleware(schema), ...middlewares], factory);
25
+ },
26
+ run(fn) {
27
+ return (async (input) => {
28
+ const executeProcedure = async (index, ctx) => {
29
+ if (index >= middlewares.length) return Promise.resolve(fn({
30
+ ctx,
31
+ input
32
+ })).then((result$1) => ({
33
+ result: result$1,
34
+ ctx
35
+ }));
36
+ const mw = middlewares[index];
37
+ if (!mw) return Promise.resolve(fn({
38
+ ctx,
39
+ input
40
+ })).then((result$1) => ({
41
+ result: result$1,
42
+ ctx
43
+ }));
44
+ return Promise.resolve(mw.run({
45
+ input,
46
+ ctx,
47
+ next: (opts) => {
48
+ return executeProcedure(index + 1, _objectSpread2(_objectSpread2({}, ctx !== null && ctx !== void 0 ? ctx : {}), opts.ctx)).then((result$1) => _objectSpread2(_objectSpread2({}, result$1), {}, { ctx: opts.ctx }));
49
+ }
50
+ }));
51
+ };
52
+ const { result } = await executeProcedure(0, void 0);
53
+ return result;
54
+ });
55
+ }
56
+ };
57
+ };
58
+ function createInputMiddleware(schema) {
59
+ return createMiddleware("INPUT_VALIDATION", async (opts) => {
60
+ if ((await schema["~standard"].validate(opts.input)).issues) throw new Error("Input validation failed");
61
+ return opts.next({ ctx: opts.ctx });
62
+ });
63
+ }
64
+ const createMiddleware = (id, fn) => ({
65
+ id,
66
+ run: fn
67
+ });
68
+
69
+ //#endregion
70
+ export { createMiddleware, createProcedureBuilder };
71
+ //# sourceMappingURL=core-internal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-internal.mjs","names":["combined: Middleware<any, any, any>","result"],"sources":["../src/core-internal.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { Awaitable, Prettify } from \"./types\";\n\nexport interface MiddlewareResult<TCtx> {\n result: unknown;\n ctx: TCtx;\n}\n\nexport type Middleware<TInput, TContext, TResult> = (args: {\n input: TInput;\n ctx: TContext;\n next: <T>(opts: { ctx: T }) => Awaitable<MiddlewareResult<T>>;\n}) => Awaitable<MiddlewareResult<TResult>>;\n\nexport interface InternalMiddleware {\n id?: string;\n run: Middleware<any, any, any>;\n}\n\nexport type InferMiddlewareOutput<T> = T extends Middleware<any, any, infer O>\n ? O\n : never;\n\nexport type InferMiddlewareArrayOutput<\n T extends readonly Middleware<any, any, any>[],\n> = T extends readonly [infer First, ...infer Rest]\n ? First extends Middleware<any, any, infer O>\n ? Rest extends readonly Middleware<any, any, any>[]\n ? Prettify<O & InferMiddlewareArrayOutput<Rest>>\n : O\n : never\n : {};\n\nexport type InferMiddlewareArrayInput<\n T extends readonly Middleware<any, any, any>[],\n> = T extends readonly [infer First, ...infer Rest]\n ? First extends Middleware<infer I, any, any>\n ? Rest extends readonly Middleware<any, any, any>[]\n ? MergeInput<I, InferMiddlewareArrayInput<Rest>>\n : I\n : never\n : Record<string, never>;\n\nexport type MergeInput<A, B> = Prettify<\n (A extends Record<string, never> | undefined ? {} : A) &\n (B extends Record<string, never> | undefined ? {} : B)\n>;\n\nexport interface ProcedureBuilder<TContext, TInput = Record<string, never>> {\n use<TInputExt, TMiddleware extends Middleware<TInputExt, TContext, any>>(\n middleware: TMiddleware,\n ): ProcedureBuilder<\n InferMiddlewareOutput<TMiddleware>,\n MergeInput<TInput, TInputExt>\n >;\n\n use<TMiddlewares extends readonly Middleware<any, TContext, any>[]>(\n middlewares: [...TMiddlewares],\n ): ProcedureBuilder<\n InferMiddlewareArrayOutput<TMiddlewares>,\n MergeInput<TInput, InferMiddlewareArrayInput<TMiddlewares>>\n >;\n\n input<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n ): ProcedureBuilder<\n TContext,\n MergeInput<TInput, StandardSchemaV1.InferInput<TSchema>>\n >;\n\n run: Run<TContext, TInput>;\n}\n\ntype IsPartialObject<T> = T extends object\n ? {} extends T\n ? true\n : false\n : false;\n\nexport type Run<\n TContext,\n TInput = Record<string, never>,\n TResultConstraint = unknown,\n> = <TResult extends TResultConstraint>(\n fn: (args: { input: TInput; ctx: TContext }) => Awaitable<TResult>,\n) => TInput extends Record<string, never> | undefined\n ? () => Promise<TResult>\n : IsPartialObject<TInput> extends true\n ? (input?: TInput) => Promise<TResult>\n : (input: TInput) => Promise<TResult>;\n\nexport type ProcedureBuilderFactory = (\n mws: InternalMiddleware[],\n factory?: ProcedureBuilderFactory,\n) => ProcedureBuilder<any, any>;\n\nexport const createProcedureBuilder = <\n TContext,\n TInput = Record<string, never>,\n>(\n middlewares: InternalMiddleware[],\n factory?: ProcedureBuilderFactory,\n): ProcedureBuilder<TContext, TInput> => {\n const create = factory ?? createProcedureBuilder;\n\n const builder: ProcedureBuilder<TContext, TInput> = {\n use: (middleware: any) => {\n if (Array.isArray(middleware)) {\n const combined: Middleware<any, any, any> = async ({\n input,\n ctx,\n next,\n }) => {\n const results = await Promise.all(\n middleware.map((mw) =>\n mw({\n input,\n ctx,\n next: <T>(opts: { ctx: T }) =>\n Promise.resolve({ result: undefined, ctx: opts.ctx }),\n }),\n ),\n );\n const mergedCtx = results.reduce(\n // biome-ignore lint/performance/noAccumulatingSpread: idc\n (acc, r) => ({ ...acc, ...r.ctx }),\n ctx,\n );\n return next({ ctx: mergedCtx });\n };\n return create([...middlewares, { run: combined }], factory);\n }\n\n return create([...middlewares, { run: middleware }], factory);\n },\n\n input(schema: any) {\n return create([createInputMiddleware(schema), ...middlewares], factory);\n },\n\n run(fn: any) {\n return (async (input?: TInput) => {\n const executeProcedure = async (\n index: number,\n ctx: unknown,\n ): Promise<MiddlewareResult<any>> => {\n if (index >= middlewares.length) {\n return Promise.resolve(fn({ ctx, input })).then((result) => ({\n result,\n ctx,\n }));\n }\n\n const mw = middlewares[index];\n if (!mw) {\n return Promise.resolve(fn({ ctx, input })).then((result) => ({\n result,\n ctx,\n }));\n }\n\n return Promise.resolve(\n mw.run({\n input,\n ctx,\n next: <T>(opts: { ctx: T }) => {\n return executeProcedure(index + 1, {\n ...(ctx ?? {}),\n ...opts.ctx,\n }).then((result) => ({\n ...result,\n ctx: opts.ctx,\n })) as Promise<MiddlewareResult<T>>;\n },\n }),\n );\n };\n\n const { result } = await executeProcedure(0, undefined);\n return result;\n }) as any;\n },\n };\n\n return builder;\n};\n\nfunction createInputMiddleware<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n) {\n return createMiddleware(\"INPUT_VALIDATION\", async (opts) => {\n const result = await schema[\"~standard\"].validate(opts.input);\n if (result.issues) {\n throw new Error(\"Input validation failed\");\n }\n return opts.next({ ctx: opts.ctx });\n });\n}\n\nexport const createMiddleware = <TInput, TContext>(\n id: string,\n fn: Middleware<TInput, TContext, any>,\n): InternalMiddleware => ({\n id,\n run: fn,\n});\n"],"mappings":";;;AAgGA,MAAa,0BAIX,aACA,YACuC;CACvC,MAAM,SAAS,mDAAW;AAiF1B,QA/EoD;EAClD,MAAM,eAAoB;AACxB,OAAI,MAAM,QAAQ,WAAW,EAAE;IAC7B,MAAMA,WAAsC,OAAO,EACjD,OACA,KACA,WACI;AAgBJ,YAAO,KAAK,EAAE,MAfE,MAAM,QAAQ,IAC5B,WAAW,KAAK,OACd,GAAG;MACD;MACA;MACA,OAAU,SACR,QAAQ,QAAQ;OAAE,QAAQ;OAAW,KAAK,KAAK;OAAK,CAAC;MACxD,CAAC,CACH,CACF,EACyB,QAEvB,KAAK,wCAAY,MAAQ,EAAE,MAC5B,IACD,EAC6B,CAAC;;AAEjC,WAAO,OAAO,CAAC,GAAG,aAAa,EAAE,KAAK,UAAU,CAAC,EAAE,QAAQ;;AAG7D,UAAO,OAAO,CAAC,GAAG,aAAa,EAAE,KAAK,YAAY,CAAC,EAAE,QAAQ;;EAG/D,MAAM,QAAa;AACjB,UAAO,OAAO,CAAC,sBAAsB,OAAO,EAAE,GAAG,YAAY,EAAE,QAAQ;;EAGzE,IAAI,IAAS;AACX,WAAQ,OAAO,UAAmB;IAChC,MAAM,mBAAmB,OACvB,OACA,QACmC;AACnC,SAAI,SAAS,YAAY,OACvB,QAAO,QAAQ,QAAQ,GAAG;MAAE;MAAK;MAAO,CAAC,CAAC,CAAC,MAAM,cAAY;MAC3D;MACA;MACD,EAAE;KAGL,MAAM,KAAK,YAAY;AACvB,SAAI,CAAC,GACH,QAAO,QAAQ,QAAQ,GAAG;MAAE;MAAK;MAAO,CAAC,CAAC,CAAC,MAAM,cAAY;MAC3D;MACA;MACD,EAAE;AAGL,YAAO,QAAQ,QACb,GAAG,IAAI;MACL;MACA;MACA,OAAU,SAAqB;AAC7B,cAAO,iBAAiB,QAAQ,qCAC1B,uCAAO,EAAE,GACV,KAAK,KACR,CAAC,MAAM,+CACJC,iBACH,KAAK,KAAK,OACT;;MAEN,CAAC,CACH;;IAGH,MAAM,EAAE,WAAW,MAAM,iBAAiB,GAAG,OAAU;AACvD,WAAO;;;EAGZ;;AAKH,SAAS,sBACP,QACA;AACA,QAAO,iBAAiB,oBAAoB,OAAO,SAAS;AAE1D,OADe,MAAM,OAAO,aAAa,SAAS,KAAK,MAAM,EAClD,OACT,OAAM,IAAI,MAAM,0BAA0B;AAE5C,SAAO,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC;GACnC;;AAGJ,MAAa,oBACX,IACA,QACwB;CACxB;CACA,KAAK;CACN"}
package/dist/core.cjs ADDED
@@ -0,0 +1,12 @@
1
+ const require_core_internal = require('./core-internal.cjs');
2
+
3
+ //#region src/core.ts
4
+ const init = (options) => ({
5
+ middleware: (fn) => fn,
6
+ procedure: require_core_internal.createProcedureBuilder([require_core_internal.createMiddleware("INITIAL_CONTEXT", async ({ next }) => {
7
+ return next({ ctx: await options.ctx() });
8
+ })])
9
+ });
10
+
11
+ //#endregion
12
+ exports.init = init;
@@ -0,0 +1,15 @@
1
+ import { Awaitable } from "./types.cjs";
2
+ import { Middleware, ProcedureBuilder } from "./core-internal.cjs";
3
+
4
+ //#region src/core.d.ts
5
+ interface InitOptions<TContext> {
6
+ ctx: () => Awaitable<TContext>;
7
+ }
8
+ interface ProcedureFactory<TContext> {
9
+ middleware: <TInput, TResult>(fn: Middleware<TInput, TContext, TResult>) => Middleware<TInput, TContext, TResult>;
10
+ procedure: ProcedureBuilder<TContext>;
11
+ }
12
+ declare const init: <TContext>(options: InitOptions<TContext>) => ProcedureFactory<TContext>;
13
+ //#endregion
14
+ export { InitOptions, ProcedureFactory, init };
15
+ //# sourceMappingURL=core.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.cts","names":[],"sources":["../src/core.ts"],"sourcesContent":[],"mappings":";;;;UAQiB;aACJ,UAAU;AADvB;AAA4B,UAIX,gBAJW,CAAA,QAAA,CAAA,CAAA;YACL,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,EAKf,UALe,CAKJ,MALI,EAKI,QALJ,EAKc,OALd,CAAA,EAAA,GAMhB,UANgB,CAML,MANK,EAMG,QANH,EAMa,OANb,CAAA;WAAV,EAOA,gBAPA,CAOiB,QAPjB,CAAA;;AAGI,cAOJ,IAPoB,EAAA,CAAA,QAAA,CAAA,CAAA,OAAA,EAQtB,WARsB,CAQV,QARU,CAAA,EAAA,GAS9B,gBAT8B,CASb,QATa,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { Awaitable } from "./types.mjs";
2
+ import { Middleware, ProcedureBuilder } from "./core-internal.mjs";
3
+
4
+ //#region src/core.d.ts
5
+ interface InitOptions<TContext> {
6
+ ctx: () => Awaitable<TContext>;
7
+ }
8
+ interface ProcedureFactory<TContext> {
9
+ middleware: <TInput, TResult>(fn: Middleware<TInput, TContext, TResult>) => Middleware<TInput, TContext, TResult>;
10
+ procedure: ProcedureBuilder<TContext>;
11
+ }
12
+ declare const init: <TContext>(options: InitOptions<TContext>) => ProcedureFactory<TContext>;
13
+ //#endregion
14
+ export { InitOptions, ProcedureFactory, init };
15
+ //# sourceMappingURL=core.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.mts","names":[],"sources":["../src/core.ts"],"sourcesContent":[],"mappings":";;;;UAQiB;aACJ,UAAU;AADvB;AAA4B,UAIX,gBAJW,CAAA,QAAA,CAAA,CAAA;YACL,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,EAKf,UALe,CAKJ,MALI,EAKI,QALJ,EAKc,OALd,CAAA,EAAA,GAMhB,UANgB,CAML,MANK,EAMG,QANH,EAMa,OANb,CAAA;WAAV,EAOA,gBAPA,CAOiB,QAPjB,CAAA;;AAGI,cAOJ,IAPoB,EAAA,CAAA,QAAA,CAAA,CAAA,OAAA,EAQtB,WARsB,CAQV,QARU,CAAA,EAAA,GAS9B,gBAT8B,CASb,QATa,CAAA"}
package/dist/core.mjs ADDED
@@ -0,0 +1,13 @@
1
+ import { createMiddleware, createProcedureBuilder } from "./core-internal.mjs";
2
+
3
+ //#region src/core.ts
4
+ const init = (options) => ({
5
+ middleware: (fn) => fn,
6
+ procedure: createProcedureBuilder([createMiddleware("INITIAL_CONTEXT", async ({ next }) => {
7
+ return next({ ctx: await options.ctx() });
8
+ })])
9
+ });
10
+
11
+ //#endregion
12
+ export { init };
13
+ //# sourceMappingURL=core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.mjs","names":[],"sources":["../src/core.ts"],"sourcesContent":["import {\n createMiddleware,\n createProcedureBuilder,\n type Middleware,\n type ProcedureBuilder,\n} from \"./core-internal\";\nimport type { Awaitable } from \"./types\";\n\nexport interface InitOptions<TContext> {\n ctx: () => Awaitable<TContext>;\n}\n\nexport interface ProcedureFactory<TContext> {\n middleware: <TInput, TResult>(\n fn: Middleware<TInput, TContext, TResult>,\n ) => Middleware<TInput, TContext, TResult>;\n procedure: ProcedureBuilder<TContext>;\n}\n\nexport const init = <TContext>(\n options: InitOptions<TContext>,\n): ProcedureFactory<TContext> => ({\n middleware: (fn) => fn,\n procedure: createProcedureBuilder([\n createMiddleware(\"INITIAL_CONTEXT\", async ({ next }) => {\n return next({ ctx: await options.ctx() });\n }),\n ]),\n});\n"],"mappings":";;;AAmBA,MAAa,QACX,aACgC;CAChC,aAAa,OAAO;CACpB,WAAW,uBAAuB,CAChC,iBAAiB,mBAAmB,OAAO,EAAE,WAAW;AACtD,SAAO,KAAK,EAAE,KAAK,MAAM,QAAQ,KAAK,EAAE,CAAC;GACzC,CACH,CAAC;CACH"}
package/dist/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ const require_core = require('./core.cjs');
2
+
3
+ exports.init = require_core.init;
@@ -0,0 +1,2 @@
1
+ import { InitOptions, ProcedureFactory, init } from "./core.cjs";
2
+ export { InitOptions, ProcedureFactory, init };
@@ -0,0 +1,2 @@
1
+ import { InitOptions, ProcedureFactory, init } from "./core.mjs";
2
+ export { InitOptions, ProcedureFactory, init };
package/dist/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import { init } from "./core.mjs";
2
+
3
+ export { init };
package/dist/next.cjs ADDED
@@ -0,0 +1,45 @@
1
+ const require_objectSpread2 = require('./_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.cjs');
2
+ const require_core_internal = require('./core-internal.cjs');
3
+ const require_core = require('./core.cjs');
4
+
5
+ //#region src/next.ts
6
+ const createNextBuilder = (middlewares, factory) => {
7
+ const core = require_core_internal.createProcedureBuilder(middlewares, factory !== null && factory !== void 0 ? factory : createNextBuilder);
8
+ return require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, core), {}, {
9
+ params() {
10
+ const mw = require_core_internal.createMiddleware("NEXT_PARAMS", async ({ input, ctx, next }) => {
11
+ const params = await input.params;
12
+ return next({ ctx: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, ctx), {}, { params }) });
13
+ });
14
+ return createNextBuilder([...middlewares, mw], factory);
15
+ },
16
+ searchParams(schema) {
17
+ const mw = require_core_internal.createMiddleware("NEXT_SEARCH_PARAMS", async ({ input, ctx, next }) => {
18
+ const searchParams = await input.searchParams;
19
+ const result = await schema["~standard"].validate(searchParams);
20
+ if (result.issues) throw new Error("Invalid search params");
21
+ return next({ ctx: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, ctx), {}, { searchParams: result.value }) });
22
+ });
23
+ return createNextBuilder([...middlewares, mw], factory);
24
+ },
25
+ page: core.run,
26
+ rsc: core.run,
27
+ metadata: core.run,
28
+ layout: core.run,
29
+ layoutMetadata: core.run,
30
+ staticParams: core.run
31
+ });
32
+ };
33
+ const init = (options) => {
34
+ const core = require_core.init(options);
35
+ const initialMiddlewares = [require_core_internal.createMiddleware("INITIAL_CONTEXT", async ({ next }) => {
36
+ return next({ ctx: await options.ctx() });
37
+ })];
38
+ return {
39
+ middleware: core.middleware,
40
+ procedure: createNextBuilder(initialMiddlewares)
41
+ };
42
+ };
43
+
44
+ //#endregion
45
+ exports.init = init;
@@ -0,0 +1,47 @@
1
+ import { Prettify } from "./types.cjs";
2
+ import { InferMiddlewareArrayInput, InferMiddlewareArrayOutput, InferMiddlewareOutput, MergeInput, Middleware, Run } from "./core-internal.cjs";
3
+ import { InitOptions } from "./core.cjs";
4
+ import { StandardSchemaV1 } from "@standard-schema/spec";
5
+ import { Metadata } from "next";
6
+ import { ReactNode } from "react";
7
+
8
+ //#region src/next.d.ts
9
+ type ExtractParams<TInput> = TInput extends {
10
+ params: infer P;
11
+ } ? P : never;
12
+ interface NextProcedureBuilder<TContext, TInput = {}> {
13
+ use<TInputExt, TMiddleware extends Middleware<TInputExt, TContext, any>>(middleware: TMiddleware): NextProcedureBuilder<InferMiddlewareOutput<TMiddleware>, MergeInput<TInput, TInputExt>>;
14
+ use<TMiddlewares extends readonly Middleware<any, TContext, any>[]>(middlewares: [...TMiddlewares]): NextProcedureBuilder<InferMiddlewareArrayOutput<TMiddlewares>, MergeInput<TInput, InferMiddlewareArrayInput<TMiddlewares>>>;
15
+ input<TSchema extends StandardSchemaV1>(schema: TSchema): NextProcedureBuilder<TContext, TInput & StandardSchemaV1.InferInput<TSchema>>;
16
+ params<T, TSchema extends StandardSchemaV1 | undefined = undefined>(schema?: TSchema): NextProcedureBuilder<Prettify<TContext & {
17
+ params: TSchema extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<TSchema> : T;
18
+ }>, Prettify<TInput & {
19
+ params: Promise<TSchema extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<TSchema> : T>;
20
+ }>>;
21
+ searchParams<TSchema extends StandardSchemaV1>(schema: TSchema): NextProcedureBuilder<Prettify<TContext & {
22
+ searchParams: StandardSchemaV1.InferOutput<TSchema>;
23
+ }>, Prettify<TInput & {
24
+ searchParams: Promise<Record<string, string | string[] | undefined>>;
25
+ }>>;
26
+ run: Run<TContext, TInput>;
27
+ page: Run<TContext, Prettify<TInput & {
28
+ searchParams: Promise<Record<string, string | string[] | undefined>>;
29
+ params: Promise<{
30
+ [key: string]: string;
31
+ }>;
32
+ }>, ReactNode>;
33
+ rsc: Run<TContext, TInput, ReactNode>;
34
+ metadata: Run<TContext, TInput, Metadata>;
35
+ layout: Run<TContext, TInput & {
36
+ children: ReactNode;
37
+ }, ReactNode>;
38
+ layoutMetadata: Run<Prettify<Omit<TContext, "searchParams">>, Prettify<Omit<TInput, "searchParams">>, Metadata>;
39
+ staticParams: Run<TContext, TInput, ExtractParams<TContext>[]>;
40
+ }
41
+ declare const init: <TContext>(options: InitOptions<TContext>) => {
42
+ middleware: <TInput, TResult>(fn: Middleware<TInput, TContext, TResult>) => Middleware<TInput, TContext, TResult>;
43
+ procedure: NextProcedureBuilder<TContext>;
44
+ };
45
+ //#endregion
46
+ export { init };
47
+ //# sourceMappingURL=next.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.d.cts","names":[],"sources":["../src/next.ts"],"sourcesContent":[],"mappings":"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"}