@ynight/framework 0.0.0-stage → 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 (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +511 -2
  3. package/assets/.gitkeep +0 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/assets/index.d.ts +41 -0
  6. package/dist/assets/index.d.ts.map +1 -0
  7. package/dist/assets/index.js +68 -0
  8. package/dist/assets/index.js.map +1 -0
  9. package/dist/client/common.d.ts +77 -0
  10. package/dist/client/common.d.ts.map +1 -0
  11. package/dist/client/index.d.ts +56 -0
  12. package/dist/client/index.d.ts.map +1 -0
  13. package/dist/client/index.mjs +8 -0
  14. package/dist/client/index.mjs.LICENSE.txt +8 -0
  15. package/dist/client/layout/Layout.vue.d.ts +21 -0
  16. package/dist/client/layout/Layout.vue.d.ts.map +1 -0
  17. package/dist/client/layout/SiderLayout.vue.d.ts +32 -0
  18. package/dist/client/layout/SiderLayout.vue.d.ts.map +1 -0
  19. package/dist/client/layout/SubMenu.vue.d.ts +8 -0
  20. package/dist/client/layout/SubMenu.vue.d.ts.map +1 -0
  21. package/dist/client/package.json +3 -0
  22. package/dist/client/pages/DashboardPage.vue.d.ts +4 -0
  23. package/dist/client/pages/DashboardPage.vue.d.ts.map +1 -0
  24. package/dist/client/pages/ErrorPage.vue.d.ts +9 -0
  25. package/dist/client/pages/ErrorPage.vue.d.ts.map +1 -0
  26. package/dist/client/pages/PageSkeleton.vue.d.ts +4 -0
  27. package/dist/client/pages/PageSkeleton.vue.d.ts.map +1 -0
  28. package/dist/client/pages/ProjectListPage.vue.d.ts +4 -0
  29. package/dist/client/pages/ProjectListPage.vue.d.ts.map +1 -0
  30. package/dist/client/pages/project-navigation.d.ts +21 -0
  31. package/dist/client/pages/project-navigation.d.ts.map +1 -0
  32. package/dist/client/public-components.d.ts +56 -0
  33. package/dist/client/public-components.d.ts.map +1 -0
  34. package/dist/client/runtime.d.ts +55 -0
  35. package/dist/client/runtime.d.ts.map +1 -0
  36. package/dist/client/schema-types.d.ts +129 -0
  37. package/dist/client/schema-types.d.ts.map +1 -0
  38. package/dist/client/schema.d.ts +105 -0
  39. package/dist/client/schema.d.ts.map +1 -0
  40. package/dist/client/style.css +147 -0
  41. package/dist/client/types.d.ts +195 -0
  42. package/dist/client/types.d.ts.map +1 -0
  43. package/dist/client/views/ModuleHost.vue.d.ts +8 -0
  44. package/dist/client/views/ModuleHost.vue.d.ts.map +1 -0
  45. package/dist/client/views/SchemaView.vue.d.ts +8 -0
  46. package/dist/client/views/SchemaView.vue.d.ts.map +1 -0
  47. package/dist/client/views/schema/create-form.vue.d.ts +13 -0
  48. package/dist/client/views/schema/create-form.vue.d.ts.map +1 -0
  49. package/dist/client/views/schema/detail-view.vue.d.ts +10 -0
  50. package/dist/client/views/schema/detail-view.vue.d.ts.map +1 -0
  51. package/dist/client/views/schema/search-panel.vue.d.ts +11 -0
  52. package/dist/client/views/schema/search-panel.vue.d.ts.map +1 -0
  53. package/dist/client/views/schema/table-panel.vue.d.ts +17 -0
  54. package/dist/client/views/schema/table-panel.vue.d.ts.map +1 -0
  55. package/dist/client/views/schema/update-form.vue.d.ts +14 -0
  56. package/dist/client/views/schema/update-form.vue.d.ts.map +1 -0
  57. package/dist/client/widgets/schema-form/SchemaField.vue.d.ts +18 -0
  58. package/dist/client/widgets/schema-form/SchemaField.vue.d.ts.map +1 -0
  59. package/dist/client/widgets/schema-form/complex-view/index.d.ts +11 -0
  60. package/dist/client/widgets/schema-form/complex-view/index.d.ts.map +1 -0
  61. package/dist/client/widgets/schema-form/complex-view/schema-async-search-select.vue.d.ts +39 -0
  62. package/dist/client/widgets/schema-form/complex-view/schema-async-search-select.vue.d.ts.map +1 -0
  63. package/dist/client/widgets/schema-form/complex-view/schema-dynamic-select.vue.d.ts +32 -0
  64. package/dist/client/widgets/schema-form/complex-view/schema-dynamic-select.vue.d.ts.map +1 -0
  65. package/dist/client/widgets/schema-form/complex-view/schema-tag-input.vue.d.ts +25 -0
  66. package/dist/client/widgets/schema-form/complex-view/schema-tag-input.vue.d.ts.map +1 -0
  67. package/dist/client/widgets/schema-form/complex-view/schema-upload.vue.d.ts +16 -0
  68. package/dist/client/widgets/schema-form/complex-view/schema-upload.vue.d.ts.map +1 -0
  69. package/dist/client/widgets/schema-form/hooks/use-schema-rules.d.ts +45 -0
  70. package/dist/client/widgets/schema-form/hooks/use-schema-rules.d.ts.map +1 -0
  71. package/dist/client/widgets/schema-form/index.vue.d.ts +26 -0
  72. package/dist/client/widgets/schema-form/index.vue.d.ts.map +1 -0
  73. package/dist/client/widgets/schema-form/type.d.ts +295 -0
  74. package/dist/client/widgets/schema-form/type.d.ts.map +1 -0
  75. package/dist/client/widgets/schema-form/validator.d.ts +127 -0
  76. package/dist/client/widgets/schema-form/validator.d.ts.map +1 -0
  77. package/dist/client/widgets/schema-table/index.vue.d.ts +9 -0
  78. package/dist/client/widgets/schema-table/index.vue.d.ts.map +1 -0
  79. package/dist/client/widgets/schema-table/type.d.ts +91 -0
  80. package/dist/client/widgets/schema-table/type.d.ts.map +1 -0
  81. package/dist/model/index.d.ts +75 -0
  82. package/dist/model/index.d.ts.map +1 -0
  83. package/dist/model/index.js +108 -0
  84. package/dist/model/index.js.map +1 -0
  85. package/dist/model.d.ts +13 -0
  86. package/dist/model.d.ts.map +1 -0
  87. package/dist/model.js +16 -0
  88. package/dist/model.js.map +1 -0
  89. package/dist/server/application.d.ts +33 -0
  90. package/dist/server/application.d.ts.map +1 -0
  91. package/dist/server/application.js +1082 -0
  92. package/dist/server/application.js.map +1 -0
  93. package/dist/server/base-class.d.ts +50 -0
  94. package/dist/server/base-class.d.ts.map +1 -0
  95. package/dist/server/base-class.js +66 -0
  96. package/dist/server/base-class.js.map +1 -0
  97. package/dist/server/config.d.ts +44 -0
  98. package/dist/server/config.d.ts.map +1 -0
  99. package/dist/server/config.js +231 -0
  100. package/dist/server/config.js.map +1 -0
  101. package/dist/server/context.d.ts +30 -0
  102. package/dist/server/context.d.ts.map +1 -0
  103. package/dist/server/context.js +3 -0
  104. package/dist/server/context.js.map +1 -0
  105. package/dist/server/define-routes.d.ts +29 -0
  106. package/dist/server/define-routes.d.ts.map +1 -0
  107. package/dist/server/define-routes.js +39 -0
  108. package/dist/server/define-routes.js.map +1 -0
  109. package/dist/server/define-server.d.ts +19 -0
  110. package/dist/server/define-server.d.ts.map +1 -0
  111. package/dist/server/define-server.js +23 -0
  112. package/dist/server/define-server.js.map +1 -0
  113. package/dist/server/index.d.ts +26 -0
  114. package/dist/server/index.d.ts.map +1 -0
  115. package/dist/server/index.js +35 -0
  116. package/dist/server/index.js.map +1 -0
  117. package/dist/server/legacy.d.ts +13 -0
  118. package/dist/server/legacy.d.ts.map +1 -0
  119. package/dist/server/legacy.js +15 -0
  120. package/dist/server/legacy.js.map +1 -0
  121. package/dist/server/types.d.ts +272 -0
  122. package/dist/server/types.d.ts.map +1 -0
  123. package/dist/server/types.js +3 -0
  124. package/dist/server/types.js.map +1 -0
  125. package/dist/server.d.ts +12 -0
  126. package/dist/server.d.ts.map +1 -0
  127. package/dist/server.js +15 -0
  128. package/dist/server.js.map +1 -0
  129. package/package.json +106 -3
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transQueryToString = exports.SchemaFormControlType = exports.SchemaComponentName = exports.ModuleType = exports.MenuType = exports.EventKey = void 0;
4
+ exports.defineControlContracts = defineControlContracts;
5
+ exports.defineModel = defineModel;
6
+ exports.custom = custom;
7
+ exports.iframe = iframe;
8
+ exports.group = group;
9
+ exports.sider = sider;
10
+ exports.schema = schema;
11
+ /**
12
+ * 模型入口只转出 DSL、通用查询工具和项目 DTO,避免泄漏签名实现。
13
+ *
14
+ * - 工具:EventKey / MenuType / ModuleType / SchemaComponentName / SchemaFormControlType
15
+ * - 工具函数:transQueryToString
16
+ * - 类型:BusinessControls / IModel / MenuItemType / ComponentConfigMap / 各类控件配置 …
17
+ * - 类型:ProjectDto / ModelDto
18
+ *
19
+ * 业务侧应通过 `@ynight/framework/model` 引入上述符号,避免直接依赖 `@ynight/contracts`。
20
+ */
21
+ var contracts_1 = require("@ynight/contracts");
22
+ Object.defineProperty(exports, "EventKey", { enumerable: true, get: function () { return contracts_1.EventKey; } });
23
+ Object.defineProperty(exports, "MenuType", { enumerable: true, get: function () { return contracts_1.MenuType; } });
24
+ Object.defineProperty(exports, "ModuleType", { enumerable: true, get: function () { return contracts_1.ModuleType; } });
25
+ Object.defineProperty(exports, "SchemaComponentName", { enumerable: true, get: function () { return contracts_1.SchemaComponentName; } });
26
+ Object.defineProperty(exports, "SchemaFormControlType", { enumerable: true, get: function () { return contracts_1.SchemaFormControlType; } });
27
+ Object.defineProperty(exports, "transQueryToString", { enumerable: true, get: function () { return contracts_1.transQueryToString; } });
28
+ /**
29
+ * 标注控件契约对象,仅做类型断言(identity)。
30
+ * 业务侧应将控件 propsSchema 集合声明为该函数返回值,以获得完整类型提示。
31
+ */
32
+ function defineControlContracts(contracts) {
33
+ return contracts;
34
+ }
35
+ /**
36
+ * 标注业务模型(IModel)对象,仅做类型断言(identity)。
37
+ *
38
+ * 设计目的:
39
+ * 1. 让业务侧在写模型字面量时获得完整字段补全;
40
+ * 2. 通过可选的 `__controls` 把业务自定义控件类型透传给后续钩子;
41
+ * 3. 与 defineControlContracts 配合,可以让 schema 字段中的 control 类型受 IModel 推断约束。
42
+ */
43
+ function defineModel(model) {
44
+ return model;
45
+ }
46
+ /**
47
+ * 声明一个"自定义模块"菜单项。
48
+ * 适用场景:业务方提供独立路由 + 页面(iframe 之外、能跨项目的页面)。
49
+ * - key:菜单唯一标识(也用于 dashboard URL key)
50
+ * - name:展示名称
51
+ * - path:原始访问路径,用于 History 路由短链重定向
52
+ */
53
+ function custom(key, name, path) {
54
+ return {
55
+ key,
56
+ name,
57
+ menuType: 'module',
58
+ moduleType: 'custom',
59
+ moduleConfig: { path },
60
+ };
61
+ }
62
+ /**
63
+ * 声明一个 iframe 模块菜单项。
64
+ * 适用场景:在管理后台内嵌第三方页面;path 为第三方页面 URL。
65
+ */
66
+ function iframe(key, name, path) {
67
+ return {
68
+ key,
69
+ name,
70
+ menuType: 'module',
71
+ moduleType: 'iframe',
72
+ moduleConfig: { path },
73
+ };
74
+ }
75
+ /**
76
+ * 声明菜单分组(仅用于侧边栏分组,自身不对应一个页面)。
77
+ * 子菜单为空时整组不会渲染。
78
+ */
79
+ function group(key, name, subMenu) {
80
+ return { key, name, menuType: 'group', subMenu };
81
+ }
82
+ /**
83
+ * 声明一个 sider(侧边栏)模块菜单项。
84
+ * 内部 menu 即侧边栏上的子菜单项;与 group 的差别在于 sider 自身也对应一个可访问的页面。
85
+ */
86
+ function sider(key, name, menu) {
87
+ return {
88
+ key,
89
+ name,
90
+ menuType: 'module',
91
+ moduleType: 'sider',
92
+ moduleConfig: { menu },
93
+ };
94
+ }
95
+ /**
96
+ * 声明一个 schema 驱动的模块菜单项。
97
+ * 适用场景:表格式 CRUD 页面;具体组件、表单、按钮配置由 moduleConfig 提供。
98
+ */
99
+ function schema(key, name, moduleConfig) {
100
+ return {
101
+ key,
102
+ name,
103
+ menuType: 'module',
104
+ moduleType: 'schema',
105
+ moduleConfig,
106
+ };
107
+ }
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;AAqFA,wDAIC;AAUD,kCAIC;AAYD,wBAYC;AAMD,wBAYC;AAMD,sBAMC;AAMD,sBAYC;AAMD,wBAYC;AAxLD;;;;;;;;;GASG;AACH,+CAO2B;AANzB,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,uGAAA,UAAU,OAAA;AACV,gHAAA,mBAAmB,OAAA;AACnB,kHAAA,qBAAqB,OAAA;AACrB,+GAAA,kBAAkB,OAAA;AAwDpB;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,SAAsC;IAEtC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,KAAwB;IAExB,OAAO,KAAK,CAAC;AACf,CAAC;AAKD;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,GAAW,EACX,IAAY,EACZ,IAAY;IAEZ,OAAO;QACL,GAAG;QACH,IAAI;QACJ,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,EAAE,IAAI,EAAE;KACA,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,MAAM,CACpB,GAAW,EACX,IAAY,EACZ,IAAY;IAEZ,OAAO;QACL,GAAG;QACH,IAAI;QACJ,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,EAAE,IAAI,EAAE;KACA,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,KAAK,CACnB,GAAW,EACX,IAAY,EACZ,OAA8B;IAE9B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAyB,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,SAAgB,KAAK,CACnB,GAAW,EACX,IAAY,EACZ,IAA2B;IAE3B,OAAO;QACL,GAAG;QACH,IAAI;QACJ,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,EAAE,IAAI,EAAE;KACA,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,MAAM,CACpB,GAAW,EACX,IAAY,EACZ,YAA2C;IAE3C,OAAO;QACL,GAAG;QACH,IAAI;QACJ,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,YAAY;KACU,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 框架 model 公共入口:转出模型 DSL 模块的全部公开导出。
3
+ *
4
+ * 业务侧典型用法:
5
+ * ```ts
6
+ * import { defineModel, schema, sider } from '@ynight/framework/model';
7
+ * ```
8
+ *
9
+ * 与 server 入口不同之处在于:本文件仅暴露与"模型 / 菜单 DSL"相关的符号,
10
+ * 避免在模型文件中误用到服务端装配 API(如 createApplication)。
11
+ */
12
+ export * from './model/index';
13
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,eAAe,CAAC"}
package/dist/model.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /**
5
+ * 框架 model 公共入口:转出模型 DSL 模块的全部公开导出。
6
+ *
7
+ * 业务侧典型用法:
8
+ * ```ts
9
+ * import { defineModel, schema, sider } from '@ynight/framework/model';
10
+ * ```
11
+ *
12
+ * 与 server 入口不同之处在于:本文件仅暴露与"模型 / 菜单 DSL"相关的符号,
13
+ * 避免在模型文件中误用到服务端装配 API(如 createApplication)。
14
+ */
15
+ tslib_1.__exportStar(require("./model/index"), exports);
16
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,wDAA8B"}
@@ -0,0 +1,33 @@
1
+ import type { ApplicationContext, ManagedApplication } from './types';
2
+ /**
3
+ * 装配整个 Elpis 框架应用。
4
+ *
5
+ * 装配顺序(严格按以下阶段执行;任一阶段抛错都会在 finally 中清理已启动的容器):
6
+ * 1. 解析配置与路径(resolveConfig / resolveApplicationPaths)
7
+ * 2. 预热框架内置页面(readFrameworkPage)以暴露同步访问
8
+ * 3. 加载并校验业务模型(loadModels + validateModels,拒止 site 模板)
9
+ * 4. 创建 Koa 容器(createApplicationContainer)并挂载框架扩展字段
10
+ * 5. 注册全局错误处理 + bodyParser + 认证/匿名中间件
11
+ * 6. 加载业务 service / controller / middleware
12
+ * 7. 注册框架内置路由(/api/session、/api/project/list 等)
13
+ * 8. 注册业务路由(含 router-schema 集中校验)并断言无孤儿 schema
14
+ * 9. 注册静态资源 + History 兜底(pageForPath / 自定义菜单短链 / 未命中路径 302 到 homePage)
15
+ * 10. 调用 serverExtension.onReady 钩子
16
+ *
17
+ * 重要安全约束:
18
+ * - 生产模式必须显式注入 AuthAdapter;未提供直接抛错
19
+ * - 非生产模式若无 AuthAdapter,必须显式开启 devAnonymous(防遗忘)
20
+ * - devAnonymous 不允许在生产中生效;且 listen 必须为回环地址
21
+ *
22
+ * @param context 装配上下文(见 {@link ApplicationContext})
23
+ * @returns 托管应用(含 app/listen/close)
24
+ */
25
+ export declare function createApplication(context: ApplicationContext): Promise<ManagedApplication>;
26
+ /**
27
+ * 一键装配 + 启动:默认按 production 模式装配(即使环境变量为 development),
28
+ * 因为 startApplication 面向"真正开始对外监听"的场景。
29
+ *
30
+ * 适合 CLI / 容器入口调用;测试或本地热重载请直接使用 {@link createApplication}。
31
+ */
32
+ export declare function startApplication(context: ApplicationContext): Promise<ManagedApplication>;
33
+ //# sourceMappingURL=application.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/server/application.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,kBAAkB,EAIlB,kBAAkB,EAMnB,MAAM,SAAS,CAAC;AAm2BjB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiVhG;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAI/F"}