@crimson-education/replit-sdk 0.0.1 → 1.0.1-alpha-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.
- package/Readme.md +18 -0
- package/lib/api/expressRouter.js +2 -2
- package/lib/api/expressRouter.js.map +1 -1
- package/lib/api/graphqlProxy.d.ts +1 -0
- package/lib/api/graphqlProxy.d.ts.map +1 -1
- package/lib/api/graphqlProxy.js +1 -0
- package/lib/api/graphqlProxy.js.map +1 -1
- package/lib/utils/queryClient.d.ts +2 -0
- package/lib/utils/queryClient.d.ts.map +1 -0
- package/lib/utils/queryClient.js +26 -0
- package/lib/utils/queryClient.js.map +1 -0
- package/package.json +5 -2
package/Readme.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Prompts from replit:
|
|
2
|
+
|
|
3
|
+
````
|
|
4
|
+
we are going to embed the app on a iframe, so now you need to do all things one by one listed here:
|
|
5
|
+
1. install and save package @crimson-education/replit-sdk@0.0.1
|
|
6
|
+
2. call `useUrlParams` on the Root app component, like ```function App() {
|
|
7
|
+
useUrlParams();
|
|
8
|
+
return (
|
|
9
|
+
<QueryClientProvider client={queryClient}>
|
|
10
|
+
<TooltipProvider>
|
|
11
|
+
<Toaster />
|
|
12
|
+
<Router />
|
|
13
|
+
</TooltipProvider>
|
|
14
|
+
</QueryClientProvider>
|
|
15
|
+
);
|
|
16
|
+
}```
|
|
17
|
+
3. use the ExternalLink component to replace all the <a> tag which has a external link.
|
|
18
|
+
````
|
package/lib/api/expressRouter.js
CHANGED
|
@@ -12,8 +12,8 @@ const bindApi = (app) => {
|
|
|
12
12
|
details: parsed.error.issues,
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
-
const { query, variables, graphqlEndpoint } = parsed.data;
|
|
16
|
-
const authHeader = req.headers.authorization;
|
|
15
|
+
const { query, variables, graphqlEndpoint, token } = parsed.data;
|
|
16
|
+
const authHeader = token ? `Bearer ${token}` : req.headers.authorization;
|
|
17
17
|
if (!authHeader) {
|
|
18
18
|
return res.status(401).json({ error: 'Authorization header is required' });
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressRouter.js","sourceRoot":"","sources":["../../src/api/expressRouter.ts"],"names":[],"mappings":";;;AACA,iDAAoD;AAE7C,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IACtC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iCAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,sBAAsB;oBAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC7B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"expressRouter.js","sourceRoot":"","sources":["../../src/api/expressRouter.ts"],"names":[],"mappings":";;;AACA,iDAAoD;AAE7C,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IACtC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iCAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,sBAAsB;oBAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC7B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YACjE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;YAEzE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU;iBAC1B;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aAC3C,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAE/D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvG,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;oBACtE,KAAK,EAAE,4CAA4C;oBACnD,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EACL,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,4BAA4B;iBAC9G,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA/CW,QAAA,OAAO,WA+ClB"}
|
|
@@ -4,5 +4,6 @@ export declare const graphqlProxySchema: z.ZodObject<{
|
|
|
4
4
|
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
5
5
|
env: z.ZodOptional<z.ZodString>;
|
|
6
6
|
graphqlEndpoint: z.ZodString;
|
|
7
|
+
token: z.ZodOptional<z.ZodString>;
|
|
7
8
|
}, z.core.$strip>;
|
|
8
9
|
//# sourceMappingURL=graphqlProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlProxy.d.ts","sourceRoot":"","sources":["../../src/api/graphqlProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"graphqlProxy.d.ts","sourceRoot":"","sources":["../../src/api/graphqlProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC"}
|
package/lib/api/graphqlProxy.js
CHANGED
|
@@ -7,5 +7,6 @@ exports.graphqlProxySchema = zod_1.z.object({
|
|
|
7
7
|
variables: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
8
8
|
env: zod_1.z.string().optional(),
|
|
9
9
|
graphqlEndpoint: zod_1.z.string(),
|
|
10
|
+
token: zod_1.z.string().optional(),
|
|
10
11
|
});
|
|
11
12
|
//# sourceMappingURL=graphqlProxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlProxy.js","sourceRoot":"","sources":["../../src/api/graphqlProxy.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACX,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"graphqlProxy.js","sourceRoot":"","sources":["../../src/api/graphqlProxy.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACX,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryClient.d.ts","sourceRoot":"","sources":["../../src/utils/queryClient.ts"],"names":[],"mappings":"AASA,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAepH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.apiRequest = apiRequest;
|
|
4
|
+
const use_url_params_1 = require("../hooks/use-url-params");
|
|
5
|
+
async function throwIfResNotOk(res) {
|
|
6
|
+
if (!res.ok) {
|
|
7
|
+
const text = (await res.text()) || res.statusText;
|
|
8
|
+
throw new Error(`${res.status}: ${text}`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
async function apiRequest(query, variables, data) {
|
|
12
|
+
const source = (data === null || data === void 0 ? void 0 : data.source) || 'capp';
|
|
13
|
+
const graphqlEndpoint = (0, use_url_params_1.getStoredParam)(`${source}Endpoint`);
|
|
14
|
+
const env = (0, use_url_params_1.getStoredEnv)();
|
|
15
|
+
const token = (0, use_url_params_1.getStoredToken)();
|
|
16
|
+
console.log({ token, graphqlEndpoint, env, query, variables });
|
|
17
|
+
const res = await fetch('/api/function', {
|
|
18
|
+
method: 'POST',
|
|
19
|
+
headers: { 'Content-Type': 'application/json' },
|
|
20
|
+
body: JSON.stringify({ ...(data || {}), token, graphqlEndpoint, env, query, variables }),
|
|
21
|
+
credentials: 'include',
|
|
22
|
+
});
|
|
23
|
+
await throwIfResNotOk(res);
|
|
24
|
+
return res;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=queryClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryClient.js","sourceRoot":"","sources":["../../src/utils/queryClient.ts"],"names":[],"mappings":";;AASA,gCAeC;AAxBD,4DAAuF;AAEvF,KAAK,UAAU,eAAe,CAAC,GAAa;IAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,SAAc,EAAE,IAAiC;IAC/F,MAAM,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,MAAM,CAAC;IACtC,MAAM,eAAe,GAAG,IAAA,+BAAc,EAAC,GAAG,MAAM,UAAU,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAA,6BAAY,GAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAA,+BAAc,GAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;QACvC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxF,WAAW,EAAE,SAAS;KACvB,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crimson-education/replit-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.1-alpha-1",
|
|
4
4
|
"description": "SDK for Replit app integration",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
5
9
|
"main": "lib/index.js",
|
|
6
10
|
"types": "lib/index.d.ts",
|
|
7
11
|
"files": [
|
|
@@ -15,7 +19,6 @@
|
|
|
15
19
|
"test": "npm run lint"
|
|
16
20
|
},
|
|
17
21
|
"author": "Crimson Education",
|
|
18
|
-
"license": "UNLICENSED",
|
|
19
22
|
"peerDependencies": {
|
|
20
23
|
"react": "^18.0.0"
|
|
21
24
|
},
|