panel-free 1.0.0 → 1.0.2
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 +9 -25
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +9 -7
- package/dist/templates.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
# panel-free
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Reusable SQLite + Express + EJS web panel for student exam projects.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Version 1.0.2 fixes
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
После установки пакет приносит с собой серверную часть, EJS, Express, better-sqlite3 и средство запуска TypeScript. В проекте остаётся написать только `main.ts` и `Service.ts`.
|
|
7
|
+
- Home/data/reports/admin data are preserved during EJS rendering.
|
|
8
|
+
- Consumer TypeScript projects receive the required Express and better-sqlite3 type packages.
|
|
9
|
+
- Public `Db` declaration is compatible with common TypeScript module settings.
|
|
10
|
+
- CLI fallback remains available through `exports.default`.
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Если в текущей папке есть `main.ts`, достаточно:
|
|
12
|
+
Main exam usage:
|
|
16
13
|
|
|
17
14
|
```powershell
|
|
15
|
+
npm install panel-free
|
|
18
16
|
npx panel-free
|
|
19
17
|
```
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
```powershell
|
|
24
|
-
npx panel-free src/main.ts
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Пакет предоставляет команду `panel-free`, поэтому отдельный `npm install tsx` не нужен.
|
|
28
|
-
|
|
29
|
-
## Что находится внутри npm-пакета
|
|
30
|
-
|
|
31
|
-
Публичная упаковка содержит готовый `dist/` и `bin/`. Исходники библиотеки в npm-пакет намеренно не попадают: они остаются в архиве учебного проекта для изучения.
|
|
32
|
-
|
|
33
|
-
## Важно
|
|
34
|
-
|
|
35
|
-
Пакет сделан для учебного проекта. Пароли в демонстрационном приложении хранятся просто в SQLite, а сессии находятся в памяти процесса. Для реального production-сервиса нужна полноценная аутентификация и постоянное хранилище сессий.
|
|
19
|
+
The CLI starts `main.ts` from the current directory.
|
package/dist/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEvG,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;CAAE,CAAC;AAChE,KAAK,gBAAgB,GAAG,MAAM,GAAG;IAC/B,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AACF,KAAK,gBAAgB,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAC3D,KAAK,mBAAmB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAChE,KAAK,iBAAiB,GAAG,MAAM,GAAG;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEvG,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;CAAE,CAAC;AAChE,KAAK,gBAAgB,GAAG,MAAM,GAAG;IAC/B,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AACF,KAAK,gBAAgB,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAC3D,KAAK,mBAAmB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAChE,KAAK,iBAAiB,GAAG,MAAM,GAAG;IAChC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC;AA2DF,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAkB3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAyB3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAY3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAYjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAqC7D"}
|
package/dist/templates.js
CHANGED
|
@@ -34,18 +34,20 @@ function topMessage() {
|
|
|
34
34
|
<% if (typeof message !== "undefined" && message) { %><div class="notice message"><%= message %></div><% } %>`;
|
|
35
35
|
}
|
|
36
36
|
function renderContext(data, extra = {}) {
|
|
37
|
-
|
|
38
|
-
...data,
|
|
39
|
-
user: data.user ?? null,
|
|
40
|
-
error: data.error ?? null,
|
|
41
|
-
message: data.message ?? null,
|
|
37
|
+
const base = {
|
|
42
38
|
reportsAllowed: false,
|
|
43
39
|
form: null,
|
|
44
40
|
fields: [],
|
|
45
41
|
views: [],
|
|
46
42
|
reports: [],
|
|
47
|
-
rows: []
|
|
48
|
-
|
|
43
|
+
rows: []
|
|
44
|
+
};
|
|
45
|
+
const merged = { ...base, ...data, ...extra };
|
|
46
|
+
return {
|
|
47
|
+
...merged,
|
|
48
|
+
user: data.user ?? null,
|
|
49
|
+
error: data.error ?? null,
|
|
50
|
+
message: data.message ?? null
|
|
49
51
|
};
|
|
50
52
|
}
|
|
51
53
|
export function authTemplate(data) {
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAwBzC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC;;;;;WAK3B,KAAK;WACL,UAAU;QACb,CAAC;AAET,SAAS,SAAS;IAChB,OAAO;;;;;;;;;;;;SAYA,CAAC;AACV,CAAC;AAED,SAAS,WAAW,CAAC,OAA0B;IAC7C,OAAO,4DAA4D,OAAO,yFAAyF,OAAO,wJAAwJ,CAAC;AACrU,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,ubAAub,CAAC;AACjc,CAAC;AAED,SAAS,UAAU;IACjB,OAAO;gHACuG,CAAC;AACjH,CAAC;AAED,SAAS,aAAa,CAAmB,IAAO,EAAE,QAAiC,EAAE;IACnF,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "panel-free",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Small reusable SQLite + Express + EJS web panel for student projects.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./dist/index.js"
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"default": "./dist/index.js"
|
|
12
13
|
}
|
|
13
14
|
},
|
|
14
15
|
"bin": {
|
|
@@ -39,12 +40,12 @@
|
|
|
39
40
|
"better-sqlite3": "11.10.0",
|
|
40
41
|
"ejs": "3.1.10",
|
|
41
42
|
"express": "5.1.0",
|
|
42
|
-
"tsx": "4.19.2"
|
|
43
|
+
"tsx": "4.19.2",
|
|
44
|
+
"@types/better-sqlite3": "9.6.0",
|
|
45
|
+
"@types/express": "^5.0.6"
|
|
43
46
|
},
|
|
44
47
|
"devDependencies": {
|
|
45
|
-
"@types/better-sqlite3": "9.6.0",
|
|
46
48
|
"@types/ejs": "^3.1.5",
|
|
47
|
-
"@types/express": "^5.0.6",
|
|
48
49
|
"@types/node": "^20.17.57",
|
|
49
50
|
"typescript": "^5.7.3"
|
|
50
51
|
}
|