spiceflow 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 (81) hide show
  1. package/README.md +178 -0
  2. package/context.d.ts +2 -0
  3. package/context.js +1 -0
  4. package/dist/babel.test.d.ts +2 -0
  5. package/dist/babel.test.d.ts.map +1 -0
  6. package/dist/babel.test.js +32 -0
  7. package/dist/babel.test.js.map +1 -0
  8. package/dist/babelDebugOutputs.d.ts +9 -0
  9. package/dist/babelDebugOutputs.d.ts.map +1 -0
  10. package/dist/babelDebugOutputs.js +40 -0
  11. package/dist/babelDebugOutputs.js.map +1 -0
  12. package/dist/babelTransformRpc.d.ts +17 -0
  13. package/dist/babelTransformRpc.d.ts.map +1 -0
  14. package/dist/babelTransformRpc.js +304 -0
  15. package/dist/babelTransformRpc.js.map +1 -0
  16. package/dist/browser.d.ts +8 -0
  17. package/dist/browser.d.ts.map +1 -0
  18. package/dist/browser.js +133 -0
  19. package/dist/browser.js.map +1 -0
  20. package/dist/build.d.ts +10 -0
  21. package/dist/build.d.ts.map +1 -0
  22. package/dist/build.js +253 -0
  23. package/dist/build.js.map +1 -0
  24. package/dist/cli.d.ts +3 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +108 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/context-internal.d.ts +20 -0
  29. package/dist/context-internal.d.ts.map +1 -0
  30. package/dist/context-internal.js +22 -0
  31. package/dist/context-internal.js.map +1 -0
  32. package/dist/context.d.ts +2 -0
  33. package/dist/context.d.ts.map +1 -0
  34. package/dist/context.js +8 -0
  35. package/dist/context.js.map +1 -0
  36. package/dist/expose.d.ts +6 -0
  37. package/dist/expose.d.ts.map +1 -0
  38. package/dist/expose.js +39 -0
  39. package/dist/expose.js.map +1 -0
  40. package/dist/headers.d.ts +1 -0
  41. package/dist/headers.d.ts.map +1 -0
  42. package/dist/headers.js +18 -0
  43. package/dist/headers.js.map +1 -0
  44. package/dist/index.d.ts +8 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +55 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/jsonRpc.d.ts +32 -0
  49. package/dist/jsonRpc.d.ts.map +1 -0
  50. package/dist/jsonRpc.js +4 -0
  51. package/dist/jsonRpc.js.map +1 -0
  52. package/dist/server.d.ts +32 -0
  53. package/dist/server.d.ts.map +1 -0
  54. package/dist/server.js +301 -0
  55. package/dist/server.js.map +1 -0
  56. package/dist/utils.d.ts +20 -0
  57. package/dist/utils.d.ts.map +1 -0
  58. package/dist/utils.js +44 -0
  59. package/dist/utils.js.map +1 -0
  60. package/headers.d.ts +2 -0
  61. package/headers.js +1 -0
  62. package/package.json +56 -0
  63. package/sdk-template/package.json +22 -0
  64. package/sdk-template/src/index.ts +2 -0
  65. package/sdk-template/src/v1/example.ts +5 -0
  66. package/sdk-template/src/v1/generator.ts +12 -0
  67. package/sdk-template/tsconfig.json +16 -0
  68. package/src/babel.test.ts +35 -0
  69. package/src/babelDebugOutputs.ts +56 -0
  70. package/src/babelTransformRpc.ts +404 -0
  71. package/src/browser.ts +142 -0
  72. package/src/build.ts +303 -0
  73. package/src/cli.ts +118 -0
  74. package/src/context-internal.ts +36 -0
  75. package/src/context.ts +1 -0
  76. package/src/expose.ts +34 -0
  77. package/src/headers.ts +19 -0
  78. package/src/index.ts +42 -0
  79. package/src/jsonRpc.ts +43 -0
  80. package/src/server.ts +384 -0
  81. package/src/utils.ts +61 -0
package/dist/expose.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.exposeNodeServer = void 0;
7
+ const http_1 = __importDefault(require("http"));
8
+ const server_1 = require("./server");
9
+ async function exposeNodeServer({ methodsMap, basePath, port }) {
10
+ const handler = (0, server_1.internalNodeJsHandler)({ methodsMap });
11
+ const server = http_1.default.createServer(async (req, res) => {
12
+ let ended = false;
13
+ res.on('close', () => {
14
+ ended = true;
15
+ });
16
+ try {
17
+ if (req.method === 'GET' && req.url === '/') {
18
+ res.statusCode = 200;
19
+ res.end('ok');
20
+ return;
21
+ }
22
+ console.log(`[spiceflow] ${req.url}`);
23
+ await handler({ req, res, basePath });
24
+ }
25
+ catch (error) {
26
+ if (ended) {
27
+ return;
28
+ }
29
+ console.error(error);
30
+ res.statusCode = 500;
31
+ res.end('Internal server error');
32
+ }
33
+ });
34
+ server.listen(port, () => {
35
+ console.log(`server listening on http://127.0.0.1:${port}`);
36
+ });
37
+ }
38
+ exports.exposeNodeServer = exposeNodeServer;
39
+ //# sourceMappingURL=expose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expose.js","sourceRoot":"","sources":["../src/expose.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,qCAAiD;AAE1C,KAAK,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnE,MAAM,OAAO,GAAG,IAAA,8BAAqB,EAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,KAAK,GAAG,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAC5C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACtC,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAErB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AA9BD,4CA8BC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // import { asyncLocalStorage } from './context-internal';
3
+ // function myHeaders() {
4
+ // const res = asyncLocalStorage.getStore()?.headers();
5
+ // if (!res) {
6
+ // throw new Error('Called headers() outside of app dir or rpc actions');
7
+ // }
8
+ // return res;
9
+ // }
10
+ // function myCookies() {
11
+ // const res = asyncLocalStorage.getStore()?.cookies();
12
+ // if (!res) {
13
+ // throw new Error('Called cookies() outside of app dir or rpc actions');
14
+ // }
15
+ // return res;
16
+ // }
17
+ // export { myCookies as cookies, myHeaders as headers };
18
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAE1D,yBAAyB;AACzB,yDAAyD;AACzD,gBAAgB;AAChB,6EAA6E;AAC7E,MAAM;AACN,gBAAgB;AAChB,IAAI;AAEJ,yBAAyB;AACzB,yDAAyD;AACzD,gBAAgB;AAChB,6EAA6E;AAC7E,MAAM;AACN,gBAAgB;AAChB,IAAI;AAEJ,yDAAyD"}
@@ -0,0 +1,8 @@
1
+ import { PluginOptions } from './babelTransformRpc';
2
+ import { WrapMethod } from './server';
3
+ export interface WithRpcConfig {
4
+ }
5
+ export { WrapMethod };
6
+ export declare function plugins({ isServer, rootDir: nextDir, url, }: PluginOptions): any[];
7
+ export declare function findRootDir(dir: string): string;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,aAAa;CAAG;AAEjC,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,OAAO,EAAE,OAAO,EAChB,GAAG,GACJ,EAAE,aAAa,SAgBf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS/C"}
package/dist/index.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.findRootDir = exports.plugins = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ function plugins({ isServer, rootDir: nextDir, url, }) {
30
+ const rpcPluginOptions = {
31
+ isServer,
32
+ rootDir: nextDir,
33
+ url,
34
+ };
35
+ return [
36
+ require.resolve('@babel/plugin-syntax-jsx'),
37
+ [require.resolve('@babel/plugin-transform-typescript'), { isTSX: true }],
38
+ [require.resolve('../dist/babelTransformRpc'), rpcPluginOptions],
39
+ process.env.DEBUG_ACTIONS && [
40
+ require.resolve('../dist/babelDebugOutputs'),
41
+ rpcPluginOptions,
42
+ ],
43
+ ].filter(Boolean);
44
+ }
45
+ exports.plugins = plugins;
46
+ function findRootDir(dir) {
47
+ {
48
+ let curDir = path.resolve(dir, 'src');
49
+ if (fs.existsSync(curDir))
50
+ return path.resolve(curDir);
51
+ }
52
+ throw new Error("Couldn't find a src directory. Please create one under the project root");
53
+ }
54
+ exports.findRootDir = findRootDir;
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAS7B,SAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,OAAO,EAAE,OAAO,EAChB,GAAG,GACW;IACd,MAAM,gBAAgB,GAAkB;QACtC,QAAQ;QACR,OAAO,EAAE,OAAO;QAChB,GAAG;KACJ,CAAC;IAEF,OAAO;QACL,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC;QAC3C,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxE,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,gBAAgB,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI;YAC3B,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC;YAC5C,gBAAgB;SACjB;KACF,CAAC,MAAM,CAAC,OAAO,CAAU,CAAC;AAC7B,CAAC;AApBD,0BAoBC;AAED,SAAgB,WAAW,CAAC,GAAW;IACrC,CAAC;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;AACJ,CAAC;AATD,kCASC"}
@@ -0,0 +1,32 @@
1
+ export type JsonRpcRequestId = string | number | null;
2
+ export type JsonValue = string | number | boolean | null | JsonValue[] | {
3
+ [key: string]: JsonValue;
4
+ };
5
+ export interface JsonRpcRequest {
6
+ jsonrpc: '2.0';
7
+ method: string;
8
+ params: JsonValue[];
9
+ meta?: any;
10
+ id: JsonRpcRequestId;
11
+ }
12
+ export interface JsonRpcError {
13
+ code: number;
14
+ message: string;
15
+ data?: JsonValue;
16
+ }
17
+ export interface JsonRpcSuccessResponse {
18
+ jsonrpc: '2.0';
19
+ result: JsonValue;
20
+ error?: undefined;
21
+ id: JsonRpcRequestId;
22
+ meta?: any;
23
+ }
24
+ export interface JsonRpcErrorResponse {
25
+ jsonrpc: '2.0';
26
+ result?: undefined;
27
+ error: JsonRpcError;
28
+ id: JsonRpcRequestId;
29
+ meta?: any;
30
+ }
31
+ export type JsonRpcResponse = JsonRpcSuccessResponse | JsonRpcErrorResponse;
32
+ //# sourceMappingURL=jsonRpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonRpc.d.ts","sourceRoot":"","sources":["../src/jsonRpc.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,EAAE,EAAE,gBAAgB,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // https://www.jsonrpc.org/specification
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=jsonRpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonRpc.js","sourceRoot":"","sources":["../src/jsonRpc.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage, ServerResponse } from 'http';
3
+ export type Method<P extends any[], R> = (...params: P) => Promise<R> | AsyncIterable<R>;
4
+ export type WrapMethodMeta = {
5
+ name: string;
6
+ isGenerator: boolean;
7
+ pathname: string;
8
+ };
9
+ export interface WrapMethod {
10
+ <P extends any[], R = any>(method: Method<P, R>, meta: WrapMethodMeta): Method<P, R>;
11
+ }
12
+ export declare function createRpcMethod<P extends any[], R>(method: Method<P, R>, meta: WrapMethodMeta, customWrapRpcMethod: unknown): Method<P, R>;
13
+ type MethodsMap = {
14
+ [key: string]: () => Promise<{
15
+ [key: string]: Method<any, any>;
16
+ }>;
17
+ };
18
+ export declare function internalEdgeHandler({ methodsMap, }: {
19
+ methodsMap: MethodsMap;
20
+ }): ({ req, basePath }: {
21
+ req: Request;
22
+ basePath: string;
23
+ }) => Promise<Response>;
24
+ export declare function internalNodeJsHandler({ methodsMap, }: {
25
+ methodsMap: MethodsMap;
26
+ }): ({ req, res, basePath, }: {
27
+ req: IncomingMessage;
28
+ res: ServerResponse;
29
+ basePath: string;
30
+ }) => Promise<void>;
31
+ export {};
32
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAMvD,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,IAAI,CACvC,GAAG,MAAM,EAAE,CAAC,KACT,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EACvB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,cAAc,GACnB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,EAChD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,cAAc,EACpB,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAkBd;AAED,KAAK,UAAU,GAAG;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACjC,CAAC,CAAC;CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,GACX,EAAE;IACD,UAAU,EAAE,UAAU,CAAC;CACxB,uBACkC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,uBA8DpE;AAED,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,GACX,EAAE;IACD,UAAU,EAAE,UAAU,CAAC;CACxB,6BAKI;IACD,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,mBA+DF"}
package/dist/server.js ADDED
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
3
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
4
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
5
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
6
+ return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
7
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
8
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
9
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
10
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
11
+ function fulfill(value) { resume("next", value); }
12
+ function reject(value) { resume("throw", value); }
13
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
14
+ };
15
+ var __importDefault = (this && this.__importDefault) || function (mod) {
16
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.internalNodeJsHandler = exports.internalEdgeHandler = exports.createRpcMethod = void 0;
20
+ const superjson_1 = __importDefault(require("superjson"));
21
+ const context_internal_1 = require("./context-internal");
22
+ const utils_1 = require("./utils");
23
+ function createRpcMethod(method, meta, customWrapRpcMethod) {
24
+ let wrapped = method;
25
+ if (typeof customWrapRpcMethod === 'function') {
26
+ wrapped = customWrapRpcMethod(method, meta);
27
+ if (typeof wrapped !== 'function') {
28
+ throw new Error(`wrapMethod didn't return a function, got "${typeof wrapped}"`);
29
+ }
30
+ }
31
+ else if (customWrapRpcMethod !== undefined &&
32
+ customWrapRpcMethod !== null) {
33
+ throw new Error(`Invalid wrapMethod type, expected "function", got "${typeof customWrapRpcMethod}"`);
34
+ }
35
+ return (...args) => wrapped(...args);
36
+ }
37
+ exports.createRpcMethod = createRpcMethod;
38
+ function internalEdgeHandler({ methodsMap, }) {
39
+ return async ({ req, basePath }) => {
40
+ const body = await req.json();
41
+ const res = new Response();
42
+ const result = await context_internal_1.asyncLocalStorage.run({ req, res }, () => handler({
43
+ methodsMap,
44
+ body,
45
+ pathname: new URL(req.url).pathname,
46
+ basePath,
47
+ method: req.method,
48
+ }));
49
+ if (isAsyncGenerator(result)) {
50
+ const encoder = new TextEncoder();
51
+ let generatorFinished = false;
52
+ req.signal.addEventListener('abort', () => {
53
+ var _a;
54
+ if (!generatorFinished) {
55
+ console.log(`request aborted, cancelling generator`);
56
+ (_a = result.return) === null || _a === void 0 ? void 0 : _a.call(result, undefined);
57
+ }
58
+ });
59
+ const readableStream = new ReadableStream({
60
+ start(controller) { },
61
+ async pull(controller) {
62
+ while (true) {
63
+ const { done, value } = await result.next();
64
+ if (done) {
65
+ break;
66
+ }
67
+ controller.enqueue(encoder.encode('data: ' + JSON.stringify(value.json) + '\n\n'));
68
+ }
69
+ generatorFinished = true;
70
+ controller.close();
71
+ },
72
+ cancel() { },
73
+ });
74
+ return new Response(readableStream, {
75
+ headers: {
76
+ 'content-type': 'text/event-stream',
77
+ 'cache-control': 'no-cache',
78
+ connection: 'keep-alive',
79
+ },
80
+ });
81
+ }
82
+ const { status, json } = result;
83
+ return new Response(JSON.stringify(json, null, 2), {
84
+ status,
85
+ headers: (res === null || res === void 0 ? void 0 : res.headers) || {
86
+ 'content-type': 'application/json',
87
+ },
88
+ });
89
+ };
90
+ }
91
+ exports.internalEdgeHandler = internalEdgeHandler;
92
+ function internalNodeJsHandler({ methodsMap, }) {
93
+ return async ({ req, res, basePath, }) => {
94
+ let body = req['body'];
95
+ if (body && typeof body === 'string') {
96
+ // if the sdk send a request without content-type header as json, it will be a string
97
+ body = JSON.parse(body);
98
+ }
99
+ if (!body) {
100
+ // if used outside of next.js, the body is not available
101
+ try {
102
+ body = await readReqJson(req);
103
+ }
104
+ catch (error) {
105
+ res.writeHead(400);
106
+ res.end(JSON.stringify((0, utils_1.jsonRpcError)({ message: 'Invalid body, must be JSON' })));
107
+ return;
108
+ }
109
+ }
110
+ const result = await context_internal_1.asyncLocalStorage.run({ req, res }, () => handler({
111
+ methodsMap,
112
+ body,
113
+ basePath,
114
+ pathname: req.url,
115
+ method: req.method,
116
+ }));
117
+ if (isAsyncGenerator(result)) {
118
+ res.writeHead(200, {
119
+ 'content-type': 'text/event-stream',
120
+ 'cache-control': 'no-cache',
121
+ connection: 'keep-alive',
122
+ // https://github.com/vercel/next.js/issues/9965#issuecomment-584319868
123
+ 'content-encoding': 'none',
124
+ });
125
+ let generatorFinished = false;
126
+ // handle cancellation
127
+ res.on('close', () => {
128
+ var _a, _b;
129
+ if (!generatorFinished) {
130
+ console.log(`response closed, cancelling generator`);
131
+ (_b = (_a = result).return) === null || _b === void 0 ? void 0 : _b.call(_a);
132
+ }
133
+ });
134
+ while (true) {
135
+ const { done, value } = await result.next();
136
+ if (done) {
137
+ break;
138
+ }
139
+ res.write('data: ' + JSON.stringify(value.json) + '\n\n');
140
+ }
141
+ generatorFinished = true;
142
+ res.end();
143
+ return;
144
+ }
145
+ const { status, json } = result;
146
+ res.writeHead(status || 200).end(JSON.stringify(json, null, 2));
147
+ };
148
+ }
149
+ exports.internalNodeJsHandler = internalNodeJsHandler;
150
+ function isAsyncGenerator(obj) {
151
+ return obj != null && typeof obj.next === 'function';
152
+ }
153
+ const handler = async ({ method, methodsMap, basePath, body, pathname, }) => {
154
+ if (!methodsMap) {
155
+ throw new Error('No methods found');
156
+ }
157
+ if (basePath && pathname.startsWith(basePath)) {
158
+ if (basePath.endsWith('/')) {
159
+ basePath = basePath.slice(0, -1);
160
+ }
161
+ pathname = pathname.slice(basePath.length);
162
+ }
163
+ if (method !== 'POST') {
164
+ return {
165
+ status: 405,
166
+ json: {
167
+ jsonrpc: '2.0',
168
+ id: null,
169
+ error: {
170
+ code: -32001,
171
+ message: 'Server error',
172
+ data: {
173
+ cause: `HTTP method "${method}" is not allowed`,
174
+ },
175
+ },
176
+ },
177
+ };
178
+ }
179
+ const { id, method: fn, params, meta: argsMeta } = body;
180
+ const mod = methodsMap[pathname] && (await methodsMap[pathname]());
181
+ if (!mod) {
182
+ return {
183
+ status: 400,
184
+ json: {
185
+ jsonrpc: '2.0',
186
+ id,
187
+ error: {
188
+ code: -32601,
189
+ message: 'Method not found',
190
+ data: {
191
+ cause: `Path "${pathname}" is not handled by any method`,
192
+ },
193
+ },
194
+ },
195
+ };
196
+ }
197
+ const requestedMethod = mod[fn];
198
+ if (typeof requestedMethod !== 'function') {
199
+ return {
200
+ status: 400,
201
+ json: {
202
+ jsonrpc: '2.0',
203
+ id,
204
+ error: {
205
+ code: -32601,
206
+ message: 'Method not found',
207
+ data: {
208
+ cause: `Method "${fn}" is not a function, in ${Object.keys(mod).join(', ')}`,
209
+ },
210
+ },
211
+ },
212
+ };
213
+ }
214
+ try {
215
+ const args = superjson_1.default.deserialize({
216
+ json: params,
217
+ meta: argsMeta,
218
+ });
219
+ const result = await requestedMethod(...args);
220
+ if (!isAsyncGenerator(result)) {
221
+ const { json, meta } = superjson_1.default.serialize(result);
222
+ return {
223
+ json: {
224
+ jsonrpc: '2.0',
225
+ id,
226
+ result: json,
227
+ meta,
228
+ },
229
+ };
230
+ }
231
+ return (function () {
232
+ return __asyncGenerator(this, arguments, function* () {
233
+ // send a response for each yielded value
234
+ try {
235
+ while (true) {
236
+ const { done, value } = yield __await(result.next());
237
+ if (done) {
238
+ break;
239
+ }
240
+ const { json, meta } = superjson_1.default.serialize(value);
241
+ yield yield __await({
242
+ json: {
243
+ jsonrpc: '2.0',
244
+ id,
245
+ result: json,
246
+ meta,
247
+ },
248
+ });
249
+ }
250
+ }
251
+ catch (error) {
252
+ const { name = 'RpcError', message = `Invalid value thrown in "${method}", must be instance of Error`, stack = undefined, } = error instanceof Error ? error : {};
253
+ return yield __await({
254
+ json: {
255
+ jsonrpc: '2.0',
256
+ id,
257
+ error: {
258
+ code: 1,
259
+ message,
260
+ data: Object.assign({ name }, (process.env.NODE_ENV === 'production' ? {} : { stack })),
261
+ },
262
+ },
263
+ });
264
+ }
265
+ });
266
+ })();
267
+ }
268
+ catch (error) {
269
+ const { name = 'RpcError', message = `Invalid value thrown in "${method}", must be instance of Error`, stack = undefined, } = error instanceof Error ? error : {};
270
+ return {
271
+ status: 502,
272
+ json: {
273
+ jsonrpc: '2.0',
274
+ id,
275
+ error: {
276
+ code: 1,
277
+ message,
278
+ data: Object.assign({ name }, (process.env.NODE_ENV === 'production' ? {} : { stack })),
279
+ },
280
+ },
281
+ };
282
+ }
283
+ };
284
+ function readReqJson(req) {
285
+ return new Promise((resolve, reject) => {
286
+ let data = '';
287
+ req.on('data', (chunk) => {
288
+ data += chunk;
289
+ });
290
+ req.on('end', () => {
291
+ try {
292
+ const parsedData = JSON.parse(data);
293
+ resolve(parsedData);
294
+ }
295
+ catch (error) {
296
+ reject(error);
297
+ }
298
+ });
299
+ });
300
+ }
301
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { PluginPass } from '@babel/core';
2
+ import { Node, types } from '@babel/core';
3
+ import { JsonRpcErrorResponse } from './jsonRpc';
4
+ export declare function annotateAsPure<N extends Node>(t: typeof types, node: N): N;
5
+ export type Literal = number | string | boolean | {
6
+ [key: string]: Literal;
7
+ } | Literal[];
8
+ export declare const logger: {
9
+ log(...args: any[]): void;
10
+ error(...args: any[]): void;
11
+ };
12
+ export declare function getFileName(state: PluginPass): string | undefined;
13
+ export declare const directive = "use spiceflow";
14
+ export declare const serverEntryName = "_function_server_file";
15
+ export declare function jsonRpcError({ id, message, code, }: {
16
+ id?: null | undefined;
17
+ message: any;
18
+ code?: number | undefined;
19
+ }): JsonRpcErrorResponse;
20
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAS,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAI/D,wBAAgB,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAG1E;AAED,MAAM,MAAM,OAAO,GACf,MAAM,GACN,MAAM,GACN,OAAO,GACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC1B,OAAO,EAAE,CAAC;AAGd,eAAO,MAAM,MAAM;;;CAOlB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,sBAY5C;AACD,eAAO,MAAM,SAAS,kBAAkB,CAAA;AAExC,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,wBAAgB,YAAY,CAAC,EAC3B,EAAS,EACT,OAAO,EACP,IAAQ,GACT;;;;CAAA,GAAG,oBAAoB,CAUvB"}
package/dist/utils.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsonRpcError = exports.serverEntryName = exports.directive = exports.getFileName = exports.logger = exports.annotateAsPure = void 0;
4
+ const PURE_ANNOTATION = '#__PURE__';
5
+ function annotateAsPure(t, node) {
6
+ t.addComment(node, 'leading', PURE_ANNOTATION);
7
+ return node;
8
+ }
9
+ exports.annotateAsPure = annotateAsPure;
10
+ const enabled = !!process.env.DEBUG_ACTIONS;
11
+ exports.logger = {
12
+ log(...args) {
13
+ enabled && console.log('[actions]:', ...args);
14
+ },
15
+ error(...args) {
16
+ enabled && console.log('[actions]:', ...args);
17
+ },
18
+ };
19
+ function getFileName(state) {
20
+ const { filename, cwd } = state;
21
+ if (!filename) {
22
+ return undefined;
23
+ }
24
+ if (cwd && filename.startsWith(cwd)) {
25
+ return filename.slice(cwd.length + 1);
26
+ }
27
+ return filename;
28
+ }
29
+ exports.getFileName = getFileName;
30
+ exports.directive = "use spiceflow";
31
+ exports.serverEntryName = '_function_server_file';
32
+ function jsonRpcError({ id = null, message, code = 1, }) {
33
+ return {
34
+ jsonrpc: '2.0',
35
+ id,
36
+ error: {
37
+ code,
38
+ message,
39
+ data: null,
40
+ },
41
+ };
42
+ }
43
+ exports.jsonRpcError = jsonRpcError;
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAKA,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC,SAAgB,cAAc,CAAiB,CAAe,EAAE,IAAO;IACrE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAHD,wCAGC;AASD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC/B,QAAA,MAAM,GAAG;IACpB,GAAG,CAAC,GAAG,IAAI;QACT,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,GAAG,IAAI;QACX,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;CACF,CAAC;AAEF,SAAgB,WAAW,CAAC,KAAiB;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEhC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAZD,kCAYC;AACY,QAAA,SAAS,GAAG,eAAe,CAAA;AAE3B,QAAA,eAAe,GAAG,uBAAuB,CAAC;AAEvD,SAAgB,YAAY,CAAC,EAC3B,EAAE,GAAG,IAAI,EACT,OAAO,EACP,IAAI,GAAG,CAAC,GACT;IACC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,IAAI;SACX;KACF,CAAC;AACJ,CAAC;AAdD,oCAcC"}
package/headers.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import * as headers from './dist/headers';
2
+ export = headers;
package/headers.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/headers');