@epic-web/workshop-utils 4.0.0

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 (59) hide show
  1. package/README.md +3 -0
  2. package/dist/esm/apps.server.d.ts +3861 -0
  3. package/dist/esm/apps.server.d.ts.map +1 -0
  4. package/dist/esm/apps.server.js +1011 -0
  5. package/dist/esm/apps.server.js.map +1 -0
  6. package/dist/esm/cache.server.d.ts +798 -0
  7. package/dist/esm/cache.server.d.ts.map +1 -0
  8. package/dist/esm/cache.server.js +113 -0
  9. package/dist/esm/cache.server.js.map +1 -0
  10. package/dist/esm/change-tracker.server.d.ts +8 -0
  11. package/dist/esm/change-tracker.server.d.ts.map +1 -0
  12. package/dist/esm/change-tracker.server.js +32 -0
  13. package/dist/esm/change-tracker.server.js.map +1 -0
  14. package/dist/esm/codefile-mdx.server.d.ts +16 -0
  15. package/dist/esm/codefile-mdx.server.d.ts.map +1 -0
  16. package/dist/esm/codefile-mdx.server.js +275 -0
  17. package/dist/esm/codefile-mdx.server.js.map +1 -0
  18. package/dist/esm/compile-mdx.server.d.ts +11 -0
  19. package/dist/esm/compile-mdx.server.d.ts.map +1 -0
  20. package/dist/esm/compile-mdx.server.js +330 -0
  21. package/dist/esm/compile-mdx.server.js.map +1 -0
  22. package/dist/esm/db.server.d.ts +176 -0
  23. package/dist/esm/db.server.d.ts.map +1 -0
  24. package/dist/esm/db.server.js +203 -0
  25. package/dist/esm/db.server.js.map +1 -0
  26. package/dist/esm/git.server.d.ts +27 -0
  27. package/dist/esm/git.server.d.ts.map +1 -0
  28. package/dist/esm/git.server.js +93 -0
  29. package/dist/esm/git.server.js.map +1 -0
  30. package/dist/esm/iframe-sync.d.ts +10 -0
  31. package/dist/esm/iframe-sync.d.ts.map +1 -0
  32. package/dist/esm/iframe-sync.js +101 -0
  33. package/dist/esm/iframe-sync.js.map +1 -0
  34. package/dist/esm/package.json +3 -0
  35. package/dist/esm/playwright.server.d.ts +6 -0
  36. package/dist/esm/playwright.server.d.ts.map +1 -0
  37. package/dist/esm/playwright.server.js +94 -0
  38. package/dist/esm/playwright.server.js.map +1 -0
  39. package/dist/esm/process-manager.server.d.ts +78 -0
  40. package/dist/esm/process-manager.server.d.ts.map +1 -0
  41. package/dist/esm/process-manager.server.js +267 -0
  42. package/dist/esm/process-manager.server.js.map +1 -0
  43. package/dist/esm/test.d.ts +9 -0
  44. package/dist/esm/test.d.ts.map +1 -0
  45. package/dist/esm/test.js +45 -0
  46. package/dist/esm/test.js.map +1 -0
  47. package/dist/esm/timing.server.d.ts +20 -0
  48. package/dist/esm/timing.server.d.ts.map +1 -0
  49. package/dist/esm/timing.server.js +89 -0
  50. package/dist/esm/timing.server.js.map +1 -0
  51. package/dist/esm/utils.d.ts +2 -0
  52. package/dist/esm/utils.d.ts.map +1 -0
  53. package/dist/esm/utils.js +13 -0
  54. package/dist/esm/utils.js.map +1 -0
  55. package/dist/esm/utils.server.d.ts +3 -0
  56. package/dist/esm/utils.server.d.ts.map +1 -0
  57. package/dist/esm/utils.server.js +32 -0
  58. package/dist/esm/utils.server.js.map +1 -0
  59. package/package.json +171 -0
@@ -0,0 +1,32 @@
1
+ import { promises as dns } from 'node:dns';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { z } from 'zod';
5
+ export async function checkConnection() {
6
+ return dns.resolve('example.com').then(() => true, () => false);
7
+ }
8
+ const PkgSchema = z.object({}).passthrough();
9
+ export async function getPkgProp(fullPath, prop, defaultValue) {
10
+ let pkg;
11
+ try {
12
+ pkg = PkgSchema.parse(JSON.parse(fs.readFileSync(path.join(fullPath, 'package.json')).toString()));
13
+ }
14
+ catch (error) {
15
+ throw new Error(`Could not parse package.json of ${fullPath}`, {
16
+ cause: error,
17
+ });
18
+ }
19
+ const propPath = prop.split('.');
20
+ let value = pkg;
21
+ for (const p of propPath) {
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
23
+ value = value[p];
24
+ if (value === undefined)
25
+ break;
26
+ }
27
+ if (value === undefined && defaultValue === undefined) {
28
+ throw new Error(`Could not find required property ${prop} in package.json of ${fullPath}`);
29
+ }
30
+ return value ?? defaultValue;
31
+ }
32
+ //# sourceMappingURL=utils.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.server.js","sourceRoot":"","sources":["../../src/utils.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CACrC,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACX,CAAA;AACF,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAE5C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,QAAgB,EAChB,IAAY,EACZ,YAAoB;IAEpB,IAAI,GAA8B,CAAA;IAClC,IAAI,CAAC;QACJ,GAAG,GAAG,SAAS,CAAC,KAAK,CACpB,IAAI,CAAC,KAAK,CACT,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAC/D,CACD,CAAA;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,EAAE;YAC9D,KAAK,EAAE,KAAK;SACZ,CAAC,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK,GAAQ,GAAG,CAAA;IACpB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,sEAAsE;QACtE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,KAAK,KAAK,SAAS;YAAE,MAAK;IAC/B,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACd,oCAAoC,IAAI,uBAAuB,QAAQ,EAAE,CACzE,CAAA;IACF,CAAC;IACD,OAAO,KAAK,IAAI,YAAY,CAAA;AAC7B,CAAC","sourcesContent":["import { promises as dns } from 'node:dns'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { z } from 'zod'\n\nexport async function checkConnection() {\n\treturn dns.resolve('example.com').then(\n\t\t() => true,\n\t\t() => false,\n\t)\n}\n\nconst PkgSchema = z.object({}).passthrough()\n\nexport async function getPkgProp<Value>(\n\tfullPath: string,\n\tprop: string,\n\tdefaultValue?: Value,\n): Promise<Value> {\n\tlet pkg: z.infer<typeof PkgSchema>\n\ttry {\n\t\tpkg = PkgSchema.parse(\n\t\t\tJSON.parse(\n\t\t\t\tfs.readFileSync(path.join(fullPath, 'package.json')).toString(),\n\t\t\t),\n\t\t)\n\t} catch (error) {\n\t\tthrow new Error(`Could not parse package.json of ${fullPath}`, {\n\t\t\tcause: error,\n\t\t})\n\t}\n\tconst propPath = prop.split('.')\n\tlet value: any = pkg\n\tfor (const p of propPath) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tvalue = value[p]\n\t\tif (value === undefined) break\n\t}\n\tif (value === undefined && defaultValue === undefined) {\n\t\tthrow new Error(\n\t\t\t`Could not find required property ${prop} in package.json of ${fullPath}`,\n\t\t)\n\t}\n\treturn value ?? defaultValue\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,171 @@
1
+ {
2
+ "name": "@epic-web/workshop-utils",
3
+ "version": "4.0.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "type": "module",
8
+ "exports": {
9
+ "./package.json": "./package.json",
10
+ "./apps.server": {
11
+ "import": {
12
+ "types": "./dist/esm/apps.server.d.ts",
13
+ "default": "./dist/esm/apps.server.js"
14
+ }
15
+ },
16
+ "./cache.server": {
17
+ "import": {
18
+ "types": "./dist/esm/cache.server.d.ts",
19
+ "default": "./dist/esm/cache.server.js"
20
+ }
21
+ },
22
+ "./db.server": {
23
+ "import": {
24
+ "types": "./dist/esm/db.server.d.ts",
25
+ "default": "./dist/esm/db.server.js"
26
+ }
27
+ },
28
+ "./timing.server": {
29
+ "import": {
30
+ "types": "./dist/esm/timing.server.d.ts",
31
+ "default": "./dist/esm/timing.server.js"
32
+ }
33
+ },
34
+ "./compile-mdx.server": {
35
+ "import": {
36
+ "types": "./dist/esm/compile-mdx.server.d.ts",
37
+ "default": "./dist/esm/compile-mdx.server.js"
38
+ }
39
+ },
40
+ "./codefile-mdx.server": {
41
+ "import": {
42
+ "types": "./dist/esm/codefile-mdx.server.d.ts",
43
+ "default": "./dist/esm/codefile-mdx.server.js"
44
+ }
45
+ },
46
+ "./change-tracker.server": {
47
+ "import": {
48
+ "types": "./dist/esm/change-tracker.server.d.ts",
49
+ "default": "./dist/esm/change-tracker.server.js"
50
+ }
51
+ },
52
+ "./git.server": {
53
+ "import": {
54
+ "types": "./dist/esm/git.server.d.ts",
55
+ "default": "./dist/esm/git.server.js"
56
+ }
57
+ },
58
+ "./iframe-sync": {
59
+ "import": {
60
+ "types": "./dist/esm/iframe-sync.d.ts",
61
+ "default": "./dist/esm/iframe-sync.js"
62
+ }
63
+ },
64
+ "./playwright.server": {
65
+ "import": {
66
+ "types": "./dist/esm/playwright.server.d.ts",
67
+ "default": "./dist/esm/playwright.server.js"
68
+ }
69
+ },
70
+ "./process-manager.server": {
71
+ "import": {
72
+ "types": "./dist/esm/process-manager.server.d.ts",
73
+ "default": "./dist/esm/process-manager.server.js"
74
+ }
75
+ },
76
+ "./test": {
77
+ "import": {
78
+ "types": "./dist/esm/test.d.ts",
79
+ "default": "./dist/esm/test.js"
80
+ }
81
+ },
82
+ "./utils.server": {
83
+ "import": {
84
+ "types": "./dist/esm/utils.server.d.ts",
85
+ "default": "./dist/esm/utils.server.js"
86
+ }
87
+ },
88
+ "./utils": {
89
+ "import": {
90
+ "types": "./dist/esm/utils.d.ts",
91
+ "default": "./dist/esm/utils.js"
92
+ }
93
+ }
94
+ },
95
+ "files": [
96
+ "dist"
97
+ ],
98
+ "scripts": {
99
+ "build": "tshy",
100
+ "build:watch": "nx watch --projects=@epic-web/workshop-utils -- nx run \\$NX_PROJECT_NAME:build"
101
+ },
102
+ "dependencies": {
103
+ "@epic-web/cachified": "^5.1.2",
104
+ "@epic-web/remember": "^1.0.2",
105
+ "@kentcdodds/md-temp": "^8.0.1",
106
+ "@mdx-js/mdx": "^3.0.1",
107
+ "@playwright/test": "^1.42.1",
108
+ "@remix-run/node": "^2.8.1",
109
+ "@testing-library/dom": "^9.3.4",
110
+ "@total-typescript/ts-reset": "^0.5.1",
111
+ "chai": "^5.1.0",
112
+ "chai-dom": "^1.12.0",
113
+ "chalk": "^5.3.0",
114
+ "chokidar": "^3.6.0",
115
+ "close-with-grace": "^1.3.0",
116
+ "cross-spawn": "^7.0.3",
117
+ "execa": "^8.0.1",
118
+ "fkill": "^9.0.0",
119
+ "fs-extra": "^11.2.0",
120
+ "glob": "^10.3.10",
121
+ "globby": "^14.0.1",
122
+ "lru-cache": "^10.2.0",
123
+ "md5-hex": "^5.0.0",
124
+ "mdast-util-mdx-jsx": "^3.1.1",
125
+ "mdx-bundler": "^10.0.1",
126
+ "p-queue": "^8.0.1",
127
+ "rehype": "^13.0.1",
128
+ "remark": "^15.0.1",
129
+ "remark-autolink-headings": "^7.0.1",
130
+ "remark-emoji": "^4.0.1",
131
+ "remark-gfm": "^4.0.0",
132
+ "unified": "^11.0.4",
133
+ "unist-util-remove-position": "^5.0.0",
134
+ "unist-util-visit": "^5.0.0",
135
+ "zod": "^3.22.4"
136
+ },
137
+ "devDependencies": {
138
+ "@types/hast": "^3.0.4",
139
+ "@types/mdast": "^4.0.3",
140
+ "@types/node": "^20.11.25",
141
+ "tshy": "^1.11.1"
142
+ },
143
+ "tshy": {
144
+ "project": "./tsconfig.build.json",
145
+ "dialects": [
146
+ "esm"
147
+ ],
148
+ "exports": {
149
+ "./package.json": "./package.json",
150
+ "./apps.server": "./src/apps.server.ts",
151
+ "./cache.server": "./src/cache.server.ts",
152
+ "./db.server": "./src/db.server.ts",
153
+ "./timing.server": "./src/timing.server.ts",
154
+ "./compile-mdx.server": "./src/compile-mdx.server.ts",
155
+ "./codefile-mdx.server": "./src/codefile-mdx.server.ts",
156
+ "./change-tracker.server": "./src/change-tracker.server.ts",
157
+ "./git.server": "./src/git.server.ts",
158
+ "./iframe-sync": "./src/iframe-sync.ts",
159
+ "./playwright.server": "./src/playwright.server.ts",
160
+ "./process-manager.server": "./src/process-manager.server.ts",
161
+ "./test": "./src/test.ts",
162
+ "./utils.server": "./src/utils.server.ts",
163
+ "./utils": "./src/utils.ts"
164
+ }
165
+ },
166
+ "repository": {
167
+ "type": "git",
168
+ "url": "https://github.com/epicweb-dev/workshop-app.git",
169
+ "directory": "packages/workshop-utils"
170
+ }
171
+ }