@crimson-education/replit-sdk 1.0.1-alpha-14 → 1.0.2-beta-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 CHANGED
@@ -1,8 +1,46 @@
1
+ ## Replit SDK for Crimson App
2
+
3
+ This SDK facilitates the rapid integration of Replit-hosted applications into the Crimson ecosystem.
4
+
5
+ ### Core Principle
6
+
7
+ The integration functions by passing environment variables and user parameters via URL parameters to the Replit frontend. This data is stored in-memory and persists until the current session ends.
8
+
9
+ Project Structure
10
+
11
+ - api
12
+
13
+ (expressRouter.ts): Provides the bindApi function, used to bind /api/function routes to server.js for forwarding API request calls.
14
+
15
+ (graphqlProxy.ts): Defines the data structures and schemas used for forwarding GraphQL interface requests.
16
+
17
+ - components
18
+
19
+ (external-link.tsx): A specialized component designed to handle navigation to external URLs.
20
+
21
+ - hooks
22
+
23
+ (use-url-params.ts): The core hook for processing parameters passed via iframe. It extracts essential data such as Auth Tokens and Environment API endpoints.
24
+
25
+ - functions
26
+
27
+ (index.ts): Contains implementations for fundamental API calls, including: `fetchLoginUser`, `getMyStudents`
28
+
29
+ - utils
30
+
31
+ (datadog.ts): Manages the Datadog initialization instance and provides the trackEvent function for analytics.
32
+
33
+ (event.ts): Utilities for iframe-to-parent communication using the postMessage API.
34
+
35
+ (queryClient.ts): A pre-configured API request client wrapper.
36
+
37
+ ### Here is a set of prompts that you may need
38
+
1
39
  Prompts from replit:
2
40
 
3
41
  ````
4
42
  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
43
+ 1. install and save package @crimson-education/replit-sdk@1.0.2-beta
6
44
  2. call `useUrlParams` on the Root app component, like ```function App() {
7
45
  useUrlParams();
8
46
  return (
@@ -14,9 +52,13 @@ we are going to embed the app on a iframe, so now you need to do all things one
14
52
  </QueryClientProvider>
15
53
  );
16
54
  }```
17
- 3. set Express proxy endpint,
55
+ 3. set Express proxy endpint, call `bindApi(app)` to bind `/api/function` route in `server/routes.ts`
18
56
  4. use the ExternalLink component to replace all the <a> tag which has a external link.
19
- 5. set dev capp endpoint when build app like ```
57
+ 5. set dev capp endpoint on top of the app before any api call like ```
20
58
  import { setStoredParams } from "@crimson-education/replit-sdk/lib/hooks/use-url-params";
21
59
  setStoredParams({'cappEndpoint': 'http://6d94f1eb.r8.cpolar.top/graphql'});```
60
+ 6. remove fetch button and staff userId input in every student picker dialog, and set getStoredUserId() as default staffId to load students once the dialog opened.
61
+ 7. replace the fetchLoginUser and fetchMyStudent function, use the exported functions from the sdk and clean up the redundant server-side endpoints.
62
+ 8. the fetchStudents api could return duplicated students, remove them to keep unique
63
+ 9.
22
64
  ````
@@ -1,7 +1,6 @@
1
1
  export declare function useUrlParams(): void;
2
2
  export declare function getStoredParam(key: string): string | null;
3
3
  export declare function setStoredParam(key: string, value: string): void;
4
- export declare const isBrowser: boolean;
5
4
  export declare const isTopWindow: boolean;
6
5
  export declare function setStoredParams(values: Record<string, string>, force?: boolean): void;
7
6
  export declare function getStoredToken(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"use-url-params.d.ts","sourceRoot":"","sources":["../../src/hooks/use-url-params.ts"],"names":[],"mappings":"AAyEA,wBAAgB,YAAY,SAmB3B;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED,eAAO,MAAM,SAAS,SAAgC,CAAC;AAEvD,eAAO,MAAM,WAAW,SAAiD,CAAC;AAE1E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAMrF;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"use-url-params.d.ts","sourceRoot":"","sources":["../../src/hooks/use-url-params.ts"],"names":[],"mappings":"AAyEA,wBAAgB,YAAY,SAmB3B;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED,eAAO,MAAM,WAAW,SAA8D,CAAC;AAEvF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAMrF;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTopWindow = exports.isBrowser = void 0;
3
+ exports.isTopWindow = void 0;
4
4
  exports.useUrlParams = useUrlParams;
5
5
  exports.getStoredParam = getStoredParam;
6
6
  exports.setStoredParam = setStoredParam;
@@ -100,8 +100,7 @@ function getStoredParam(key) {
100
100
  function setStoredParam(key, value) {
101
101
  setParam(key, value);
102
102
  }
103
- exports.isBrowser = typeof window !== 'undefined';
104
- exports.isTopWindow = exports.isBrowser ? window.self === window.top : false;
103
+ exports.isTopWindow = typeof window !== 'undefined' && window.self === window.top;
105
104
  function setStoredParams(values, force) {
106
105
  if (force || exports.isTopWindow) {
107
106
  Object.entries(values).forEach(([key, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-url-params.js","sourceRoot":"","sources":["../../src/hooks/use-url-params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-url-params.js","sourceRoot":"","sources":["../../src/hooks/use-url-params.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
- export declare const init: ({}: {}) => void;
1
+ import { IOptions } from './event';
2
+ export declare const init: (options: IOptions) => void;
2
3
  export declare const instance: null;
4
+ export declare const trackEvent: (metadata: any) => void;
3
5
  //# sourceMappingURL=datadog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.d.ts","sourceRoot":"","sources":["../../src/utils/datadog.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,GAAI,MAAE,SAEtB,CAAC;AAGF,eAAO,MAAM,QAAQ,MAAO,CAAC"}
1
+ {"version":3,"file":"datadog.d.ts","sourceRoot":"","sources":["../../src/utils/datadog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAqB,MAAM,SAAS,CAAC;AAEjE,eAAO,MAAM,IAAI,GAAI,SAAS,QAAQ,SAErC,CAAC;AAGF,eAAO,MAAM,QAAQ,MAAO,CAAC;AAE7B,eAAO,MAAM,UAAU,GAAI,UAAU,GAAG,SAEvC,CAAC"}
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.instance = exports.init = void 0;
4
- const init = ({}) => {
5
- // init datadog instance
3
+ exports.trackEvent = exports.instance = exports.init = void 0;
4
+ const event_1 = require("./event");
5
+ const init = (options) => {
6
+ (0, event_1.init)(options);
6
7
  };
7
8
  exports.init = init;
8
- // TODO:
9
+ // TODO: return datadog instance
9
10
  exports.instance = null;
11
+ const trackEvent = (metadata) => {
12
+ postMessage(event_1.EVENT_KEY.TRACK_EVENT, metadata);
13
+ };
14
+ exports.trackEvent = trackEvent;
10
15
  //# sourceMappingURL=datadog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/utils/datadog.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE;IACzB,wBAAwB;AAC1B,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEF,QAAQ;AACK,QAAA,QAAQ,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/utils/datadog.ts"],"names":[],"mappings":";;;AAAA,mCAAiE;AAE1D,MAAM,IAAI,GAAG,CAAC,OAAiB,EAAE,EAAE;IACxC,IAAA,YAAS,EAAC,OAAO,CAAC,CAAC;AACrB,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEF,gCAAgC;AACnB,QAAA,QAAQ,GAAG,IAAI,CAAC;AAEtB,MAAM,UAAU,GAAG,CAAC,QAAa,EAAE,EAAE;IAC1C,WAAW,CAAC,iBAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB"}
@@ -0,0 +1,14 @@
1
+ export interface IOptions {
2
+ app: string;
3
+ env?: string;
4
+ meta?: Record<string, any>;
5
+ [key: string]: any;
6
+ }
7
+ export declare const init: (options: IOptions) => void;
8
+ export declare enum EVENT_KEY {
9
+ OPEN_COPILOT = "OPEN_COPILOT",
10
+ TRACK_EVENT = "TRACK_EVENT",
11
+ CUSTOM_EVENT = "CUSTOM_EVENT"
12
+ }
13
+ export declare const postMessage: (event: string, metadata?: any, source?: string) => void;
14
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/utils/event.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAID,eAAO,MAAM,IAAI,GAAI,SAAS,QAAQ,SAIrC,CAAC;AAEF,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,WAAW,GAAG,EAAE,SAAS,MAAM,SAazE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postMessage = exports.EVENT_KEY = exports.init = void 0;
4
+ const use_url_params_1 = require("../hooks/use-url-params");
5
+ const _options = { app: 'Untitled' };
6
+ const init = (options) => {
7
+ Object.keys(options).forEach((key) => {
8
+ _options[key] = options[key];
9
+ });
10
+ };
11
+ exports.init = init;
12
+ var EVENT_KEY;
13
+ (function (EVENT_KEY) {
14
+ EVENT_KEY["OPEN_COPILOT"] = "OPEN_COPILOT";
15
+ EVENT_KEY["TRACK_EVENT"] = "TRACK_EVENT";
16
+ EVENT_KEY["CUSTOM_EVENT"] = "CUSTOM_EVENT";
17
+ })(EVENT_KEY || (exports.EVENT_KEY = EVENT_KEY = {}));
18
+ const postMessage = (event, metadata, source) => {
19
+ // not in iframe
20
+ if (use_url_params_1.isTopWindow)
21
+ return;
22
+ if (typeof window === 'undefined')
23
+ return;
24
+ window.parent.postMessage({
25
+ from: source || _options.app || 'Untitled',
26
+ event,
27
+ type: 'REPLIT_IFRAME_SIGNAL',
28
+ data: { userId: (0, use_url_params_1.getStoredUserId)(), env: (0, use_url_params_1.getStoredEnv)(), ...metadata },
29
+ }, '*');
30
+ };
31
+ exports.postMessage = postMessage;
32
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/utils/event.ts"],"names":[],"mappings":";;;AAAA,4DAAqF;AASrF,MAAM,QAAQ,GAAa,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAExC,MAAM,IAAI,GAAG,CAAC,OAAiB,EAAE,EAAE;IACxC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,IAAI,QAIf;AAEF,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,wCAA2B,CAAA;IAC3B,0CAA6B,CAAA;AAC/B,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAEM,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,QAAc,EAAE,MAAe,EAAE,EAAE;IAC5E,gBAAgB;IAChB,IAAI,4BAAW;QAAE,OAAO;IACxB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;QACE,IAAI,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,IAAI,UAAU;QAC1C,KAAK;QACL,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,EAAE,MAAM,EAAE,IAAA,gCAAe,GAAE,EAAE,GAAG,EAAE,IAAA,6BAAY,GAAE,EAAE,GAAG,QAAQ,EAAE;KACtE,EACD,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,WAAW,eAatB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crimson-education/replit-sdk",
3
- "version": "1.0.1-alpha-14",
3
+ "version": "1.0.2-beta-1",
4
4
  "description": "SDK for Replit app integration",
5
5
  "publishConfig": {
6
6
  "access": "public"