@shamar/adonis 0.1.2 → 0.1.4
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 +94 -2
- package/assets/admin.css +1 -1
- package/assets/shamar-ui.js +290 -5
- package/dist/auth/ldap.d.ts +115 -0
- package/dist/auth/ldap.d.ts.map +1 -0
- package/dist/auth/ldap.js +275 -0
- package/dist/auth/ldap.js.map +1 -0
- package/dist/auth/masquerade.d.ts +31 -0
- package/dist/auth/masquerade.d.ts.map +1 -0
- package/dist/auth/masquerade.js +36 -0
- package/dist/auth/masquerade.js.map +1 -0
- package/dist/auth_login_view.d.ts +56 -0
- package/dist/auth_login_view.d.ts.map +1 -0
- package/dist/auth_login_view.js +56 -0
- package/dist/auth_login_view.js.map +1 -0
- package/dist/commands/commands.json +1 -0
- package/dist/commands/main.d.ts +4 -0
- package/dist/commands/main.js +36 -0
- package/dist/commands/publish_auth.d.ts +13 -0
- package/dist/commands/publish_auth.d.ts.map +1 -0
- package/dist/commands/publish_auth.js +26 -0
- package/dist/commands/publish_auth.js.map +1 -0
- package/dist/config.d.ts +59 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/configure.d.ts +16 -1
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +6 -0
- package/dist/configure.js.map +1 -1
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/controllers/admin_controller.d.ts +1 -0
- package/dist/controllers/admin_controller.d.ts.map +1 -1
- package/dist/controllers/admin_controller.js +91 -9
- package/dist/controllers/admin_controller.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +2 -1
- package/dist/provider.js.map +1 -1
- package/dist/publish_auth.d.ts +45 -0
- package/dist/publish_auth.d.ts.map +1 -0
- package/dist/publish_auth.js +69 -0
- package/dist/publish_auth.js.map +1 -0
- package/dist/resources/api_key_resource.d.ts +4 -6
- package/dist/resources/api_key_resource.d.ts.map +1 -1
- package/dist/resources/api_key_resource.js +4 -16
- package/dist/resources/api_key_resource.js.map +1 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +27 -5
- package/dist/routes.js.map +1 -1
- package/dist/shamar/auth.d.ts +13 -1
- package/dist/shamar/auth.d.ts.map +1 -1
- package/dist/shamar/auth.js +42 -5
- package/dist/shamar/auth.js.map +1 -1
- package/dist/shamar/list-query.d.ts +9 -0
- package/dist/shamar/list-query.d.ts.map +1 -1
- package/dist/shamar/list-query.js +29 -1
- package/dist/shamar/list-query.js.map +1 -1
- package/dist/shamar/relation-fields.d.ts +15 -0
- package/dist/shamar/relation-fields.d.ts.map +1 -1
- package/dist/shamar/relation-fields.js +25 -4
- package/dist/shamar/relation-fields.js.map +1 -1
- package/dist/shamar/relation-table.d.ts +37 -0
- package/dist/shamar/relation-table.d.ts.map +1 -0
- package/dist/shamar/relation-table.js +61 -0
- package/dist/shamar/relation-table.js.map +1 -0
- package/dist/shamar/view-context.d.ts +8 -0
- package/dist/shamar/view-context.d.ts.map +1 -1
- package/dist/shamar/view-context.js +1 -0
- package/dist/shamar/view-context.js.map +1 -1
- package/package.json +15 -6
- package/resources/views/shamar/partials/detail-entry.edge +7 -0
- package/resources/views/shamar/partials/field-relation-table.edge +309 -105
- package/resources/views/shamar/partials/list-row.edge +17 -4
- package/resources/views/shamar/partials/nav.edge +6 -1
- package/resources/views/shamar/partials/shell-open.edge +14 -0
- package/resources/views/shamar/partials/topbar.edge +3 -0
- package/resources/views/shamar/show.edge +59 -20
- package/stubs/views/auth/layout.edge +244 -0
- package/stubs/views/auth/login.edge +65 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export { defineConfig, panel, type ShamarConfig, type ShamarOrm } from './config.js';
|
|
2
2
|
export { default as ShamarProvider } from './provider.js';
|
|
3
3
|
export { ResourceController } from './controller.js';
|
|
4
|
-
export { authRequired, buildAuthContext, createAuthorizer, missingRequiredMachineKey, resolveShamarUser, } from './shamar/auth.js';
|
|
4
|
+
export { authRequired, buildAuthContext, canAccessPanel, createAuthorizer, missingRequiredMachineKey, PANEL_ACCESS_DENIED_MESSAGE, resolveShamarUser, userHasAuthorization, } from './shamar/auth.js';
|
|
5
|
+
export { authenticateLdap, createLdaptsDirectoryClient, isLdapTimeoutError, LDAP_TIMEOUT_MESSAGE, LdapTimeoutError, orderLdapDomains, resolveAuthLoginMode, resolveLdapProvisioning, resolvePasswordLogin, roleIdsFromLdapIdentity, searchUsernameForDomain, type AuthenticateLdapResult, type LdapAuthSettings, type LdapDirectoryClient, type LdapDomainConfig, type LdapProvisioningMode, type LdapUserLinker, type LocalCredentialVerifier, type PasswordLoginResult, } from './auth/ldap.js';
|
|
6
|
+
export { isMasqueradeEnabled, isMasqueradePassword, isMasqueradeSession, MASQUERADE_SESSION_KEY, passwordsMatch, } from './auth/masquerade.js';
|
|
5
7
|
export { createShamarRuntime, type ShamarRuntime, type PanelRuntime, } from './runtime.js';
|
|
6
8
|
export { configure, stubsRoot } from './configure.js';
|
|
9
|
+
export { publishAuthViews, AUTH_VIEW_FILES, AUTH_VIEW_STUBS } from './publish_auth.js';
|
|
10
|
+
export { buildAuthLoginViewData, resolveAuthLoginCopy, type AuthLoginCopy, type AuthLoginViewConfig, type AuthLoginViewData, } from './auth_login_view.js';
|
|
11
|
+
export { buildBrandingCss, mergeBranding, resolveBranding, resolveGoogleFont, type ShamarBranding, } from './shamar/branding.js';
|
|
7
12
|
export { discoverResources } from './discover.js';
|
|
8
13
|
export { default as ApiKeyResource } from './resources/api_key_resource.js';
|
|
9
14
|
export { default as RequireApiKeyMiddleware, createRequireApiKeyMiddleware } from './middleware/require_api_key_middleware.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export { defineConfig, panel } from './config.js';
|
|
2
2
|
export { default as ShamarProvider } from './provider.js';
|
|
3
3
|
export { ResourceController } from './controller.js';
|
|
4
|
-
export { authRequired, buildAuthContext, createAuthorizer, missingRequiredMachineKey, resolveShamarUser, } from './shamar/auth.js';
|
|
4
|
+
export { authRequired, buildAuthContext, canAccessPanel, createAuthorizer, missingRequiredMachineKey, PANEL_ACCESS_DENIED_MESSAGE, resolveShamarUser, userHasAuthorization, } from './shamar/auth.js';
|
|
5
|
+
export { authenticateLdap, createLdaptsDirectoryClient, isLdapTimeoutError, LDAP_TIMEOUT_MESSAGE, LdapTimeoutError, orderLdapDomains, resolveAuthLoginMode, resolveLdapProvisioning, resolvePasswordLogin, roleIdsFromLdapIdentity, searchUsernameForDomain, } from './auth/ldap.js';
|
|
6
|
+
export { isMasqueradeEnabled, isMasqueradePassword, isMasqueradeSession, MASQUERADE_SESSION_KEY, passwordsMatch, } from './auth/masquerade.js';
|
|
5
7
|
export { createShamarRuntime, } from './runtime.js';
|
|
6
8
|
export { configure, stubsRoot } from './configure.js';
|
|
9
|
+
export { publishAuthViews, AUTH_VIEW_FILES, AUTH_VIEW_STUBS } from './publish_auth.js';
|
|
10
|
+
export { buildAuthLoginViewData, resolveAuthLoginCopy, } from './auth_login_view.js';
|
|
11
|
+
export { buildBrandingCss, mergeBranding, resolveBranding, resolveGoogleFont, } from './shamar/branding.js';
|
|
7
12
|
export { discoverResources } from './discover.js';
|
|
8
13
|
export { default as ApiKeyResource } from './resources/api_key_resource.js';
|
|
9
14
|
export { default as RequireApiKeyMiddleware, createRequireApiKeyMiddleware } from './middleware/require_api_key_middleware.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAqC,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAqC,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GASxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GAIrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC"}
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ,IAAI,IAAI;IAgCV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ,IAAI,IAAI;IAgCV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA6C5B"}
|
package/dist/provider.js
CHANGED
|
@@ -42,7 +42,7 @@ export default class ShamarProvider {
|
|
|
42
42
|
const { default: edge } = await import('edge.js');
|
|
43
43
|
const viewsPath = join(dirname(fileURLToPath(import.meta.url)), '../resources/views/shamar');
|
|
44
44
|
edge.mount('shamar', viewsPath);
|
|
45
|
-
const { sortColumnUrl, cellValue, detailValue, badgeValues, fieldChecked, formInputType, fieldInputAttrs, recordNavQuery, } = await import('./shamar/list-query.js');
|
|
45
|
+
const { sortColumnUrl, cellValue, detailValue, badgeValues, fieldChecked, formInputType, fieldInputAttrs, recordNavQuery, relatedListLink, } = await import('./shamar/list-query.js');
|
|
46
46
|
edge.global('sortColumnUrl', sortColumnUrl);
|
|
47
47
|
edge.global('cellValue', cellValue);
|
|
48
48
|
edge.global('detailValue', detailValue);
|
|
@@ -51,6 +51,7 @@ export default class ShamarProvider {
|
|
|
51
51
|
edge.global('formInputType', formInputType);
|
|
52
52
|
edge.global('fieldInputAttrs', fieldInputAttrs);
|
|
53
53
|
edge.global('recordNavQuery', recordNavQuery);
|
|
54
|
+
edge.global('relatedListLink', relatedListLink);
|
|
54
55
|
edge.global('resolveGridItemStyle', resolveGridItemStyle);
|
|
55
56
|
const { humanizeLabel, resolveAlignmentClass, alignmentTextClass } = await import('@shamar/core');
|
|
56
57
|
edge.global('humanizeLabel', humanizeLabel);
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const AUTH_VIEW_FILES: readonly [{
|
|
2
|
+
readonly source: "views/auth/layout.edge";
|
|
3
|
+
readonly relativePath: "resources/views/components/layouts/auth.edge";
|
|
4
|
+
}, {
|
|
5
|
+
readonly source: "views/auth/login.edge";
|
|
6
|
+
readonly relativePath: "resources/views/pages/auth/login.edge";
|
|
7
|
+
}];
|
|
8
|
+
/** @deprecated Use AUTH_VIEW_FILES */
|
|
9
|
+
export declare const AUTH_VIEW_STUBS: readonly [{
|
|
10
|
+
readonly source: "views/auth/layout.edge";
|
|
11
|
+
readonly relativePath: "resources/views/components/layouts/auth.edge";
|
|
12
|
+
}, {
|
|
13
|
+
readonly source: "views/auth/login.edge";
|
|
14
|
+
readonly relativePath: "resources/views/pages/auth/login.edge";
|
|
15
|
+
}];
|
|
16
|
+
interface PublishAuthCommand {
|
|
17
|
+
application?: {
|
|
18
|
+
makePath(...segments: string[]): string;
|
|
19
|
+
};
|
|
20
|
+
app?: {
|
|
21
|
+
makePath(...segments: string[]): string;
|
|
22
|
+
};
|
|
23
|
+
logger: {
|
|
24
|
+
info(message: string): void;
|
|
25
|
+
success(message: string): void;
|
|
26
|
+
};
|
|
27
|
+
prompt: {
|
|
28
|
+
confirm(title: string, options?: {
|
|
29
|
+
default?: boolean;
|
|
30
|
+
}): Promise<boolean>;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface PublishAuthViewsOptions {
|
|
34
|
+
/** Overwrite without prompting when targets already exist. */
|
|
35
|
+
force?: boolean;
|
|
36
|
+
/** Skip the initial “publish?” confirm (used by configure after its own prompt). */
|
|
37
|
+
skipConfirm?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Publish opinionated auth layout + login Edge views into the host app.
|
|
41
|
+
* Sources are raw `.edge` files (not Tempura stubs) so Edge syntax is preserved.
|
|
42
|
+
*/
|
|
43
|
+
export declare function publishAuthViews(command: PublishAuthCommand, options?: PublishAuthViewsOptions): Promise<boolean>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=publish_auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish_auth.d.ts","sourceRoot":"","sources":["../src/publish_auth.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;EASlB,CAAC;AAEX,sCAAsC;AACtC,eAAO,MAAM,eAAe;;;;;;EAAkB,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1D,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;KAAE,CAAC;IAClD,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3E,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAiBD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,OAAO,CAAC,CAwClB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { access, copyFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { stubsRoot } from './configure.js';
|
|
4
|
+
export const AUTH_VIEW_FILES = [
|
|
5
|
+
{
|
|
6
|
+
source: 'views/auth/layout.edge',
|
|
7
|
+
relativePath: 'resources/views/components/layouts/auth.edge',
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
source: 'views/auth/login.edge',
|
|
11
|
+
relativePath: 'resources/views/pages/auth/login.edge',
|
|
12
|
+
},
|
|
13
|
+
];
|
|
14
|
+
/** @deprecated Use AUTH_VIEW_FILES */
|
|
15
|
+
export const AUTH_VIEW_STUBS = AUTH_VIEW_FILES;
|
|
16
|
+
async function pathExists(path) {
|
|
17
|
+
try {
|
|
18
|
+
await access(path);
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function appMakePath(command) {
|
|
26
|
+
const app = command.app ?? command.application;
|
|
27
|
+
if (app?.makePath)
|
|
28
|
+
return (...segments) => app.makePath(...segments);
|
|
29
|
+
return (...segments) => join(process.cwd(), ...segments);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Publish opinionated auth layout + login Edge views into the host app.
|
|
33
|
+
* Sources are raw `.edge` files (not Tempura stubs) so Edge syntax is preserved.
|
|
34
|
+
*/
|
|
35
|
+
export async function publishAuthViews(command, options = {}) {
|
|
36
|
+
const makePath = appMakePath(command);
|
|
37
|
+
const existing = [];
|
|
38
|
+
for (const entry of AUTH_VIEW_FILES) {
|
|
39
|
+
if (await pathExists(makePath(entry.relativePath))) {
|
|
40
|
+
existing.push(entry.relativePath);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (!options.skipConfirm && existing.length === 0) {
|
|
44
|
+
const proceed = await command.prompt.confirm('Publish Shamar login page views?', {
|
|
45
|
+
default: true,
|
|
46
|
+
});
|
|
47
|
+
if (!proceed) {
|
|
48
|
+
command.logger.info('Skipped publishing auth views');
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (existing.length > 0 && !options.force) {
|
|
53
|
+
const overwrite = await command.prompt.confirm(`Overwrite existing auth views?\n - ${existing.join('\n - ')}`, { default: false });
|
|
54
|
+
if (!overwrite) {
|
|
55
|
+
command.logger.info('Skipped publishing auth views (existing files kept)');
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
for (const entry of AUTH_VIEW_FILES) {
|
|
60
|
+
const from = join(stubsRoot, entry.source);
|
|
61
|
+
const to = makePath(entry.relativePath);
|
|
62
|
+
await mkdir(dirname(to), { recursive: true });
|
|
63
|
+
await copyFile(from, to);
|
|
64
|
+
command.logger.info(`create ${entry.relativePath}`);
|
|
65
|
+
}
|
|
66
|
+
command.logger.success('Published Shamar auth views');
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=publish_auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish_auth.js","sourceRoot":"","sources":["../src/publish_auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,13 +18,11 @@ export default class ApiKeyResource extends Resource {
|
|
|
18
18
|
static navigationGroup: string;
|
|
19
19
|
static navigationSort: number;
|
|
20
20
|
static icon: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/** Secrets are create-once — use Deactivate / Reactivate instead of edit. */
|
|
21
|
+
/**
|
|
22
|
+
* Secrets are create-once — use Deactivate / Reactivate instead of edit.
|
|
23
|
+
* Other gates use default RBAC (`api-keys:viewAny`, `api-keys:create`, …).
|
|
24
|
+
*/
|
|
26
25
|
static canEdit(_user: ShamarUser, _record?: Record<string, unknown>): boolean;
|
|
27
|
-
static canDelete(_user: ShamarUser, _record?: Record<string, unknown>): boolean;
|
|
28
26
|
static resourceActions(): import("@shamar/core").ActionConfig[];
|
|
29
27
|
static form(): import("@shamar/core").FormSchema;
|
|
30
28
|
static table(): import("@shamar/core").TableSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_key_resource.d.ts","sourceRoot":"","sources":["../../src/resources/api_key_resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcR,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAGrB;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAClD,sFAAsF;IACtF,OAAgB,KAAK,EAAE,aAAa,CAAW;IAC/C,OAAgB,IAAI,SAAa;IACjC,OAAgB,KAAK,SAAa;IAClC,OAAgB,aAAa,SAAY;IACzC,OAAgB,gBAAgB,SAAS;IACzC,OAAgB,eAAe,SAAW;IAC1C,OAAgB,cAAc,SAAI;IAClC,OAAgB,IAAI,SAAQ;
|
|
1
|
+
{"version":3,"file":"api_key_resource.d.ts","sourceRoot":"","sources":["../../src/resources/api_key_resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcR,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAGrB;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAClD,sFAAsF;IACtF,OAAgB,KAAK,EAAE,aAAa,CAAW;IAC/C,OAAgB,IAAI,SAAa;IACjC,OAAgB,KAAK,SAAa;IAClC,OAAgB,aAAa,SAAY;IACzC,OAAgB,gBAAgB,SAAS;IACzC,OAAgB,eAAe,SAAW;IAC1C,OAAgB,cAAc,SAAI;IAClC,OAAgB,IAAI,SAAQ;IAE5B;;;OAGG;WACa,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;WAItE,eAAe;WAuBf,IAAI;WAsCJ,KAAK;WAiBL,QAAQ;WAsBF,aAAa,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,mBAAmB,CAAC;WAiET,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAuCtC"}
|
|
@@ -19,25 +19,13 @@ export default class ApiKeyResource extends Resource {
|
|
|
19
19
|
static navigationGroup = 'System';
|
|
20
20
|
static navigationSort = 8;
|
|
21
21
|
static icon = 'key';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
static canView(_user, _record) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
static canCreate(_user) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
/** Secrets are create-once — use Deactivate / Reactivate instead of edit. */
|
|
22
|
+
/**
|
|
23
|
+
* Secrets are create-once — use Deactivate / Reactivate instead of edit.
|
|
24
|
+
* Other gates use default RBAC (`api-keys:viewAny`, `api-keys:create`, …).
|
|
25
|
+
*/
|
|
35
26
|
static canEdit(_user, _record) {
|
|
36
27
|
return false;
|
|
37
28
|
}
|
|
38
|
-
static canDelete(_user, _record) {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
29
|
static resourceActions() {
|
|
42
30
|
return actions((a) => {
|
|
43
31
|
a.create();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_key_resource.js","sourceRoot":"","sources":["../../src/resources/api_key_resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,mBAAmB,GAOpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAClD,sFAAsF;IACtF,MAAM,CAAU,KAAK,GAAkB,QAAQ,CAAA;IAC/C,MAAM,CAAU,IAAI,GAAG,UAAU,CAAA;IACjC,MAAM,CAAU,KAAK,GAAG,UAAU,CAAA;IAClC,MAAM,CAAU,aAAa,GAAG,SAAS,CAAA;IACzC,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAA;IACzC,MAAM,CAAU,eAAe,GAAG,QAAQ,CAAA;IAC1C,MAAM,CAAU,cAAc,GAAG,CAAC,CAAA;IAClC,MAAM,CAAU,IAAI,GAAG,KAAK,CAAA;IAE5B
|
|
1
|
+
{"version":3,"file":"api_key_resource.js","sourceRoot":"","sources":["../../src/resources/api_key_resource.ts"],"names":[],"mappings":"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"}
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAqBhE,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAqBhE,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
|
package/dist/routes.js
CHANGED
|
@@ -15,11 +15,30 @@ export async function registerShamarRoutes(app, router, runtime) {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
const api = router.group(() => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
router
|
|
18
|
+
// Reserve docs / OpenAPI paths so they are not treated as resource slugs.
|
|
19
|
+
const resourceSlug = {
|
|
20
|
+
match: /^(?!openapi\.json$|docs$).+$/,
|
|
21
|
+
};
|
|
22
|
+
router
|
|
23
|
+
.get('/:slug', apiHandler('index'))
|
|
24
|
+
.where('slug', resourceSlug)
|
|
25
|
+
.as('shamar.api.index');
|
|
26
|
+
router
|
|
27
|
+
.get('/:slug/:id', apiHandler('show'))
|
|
28
|
+
.where('slug', resourceSlug)
|
|
29
|
+
.as('shamar.api.show');
|
|
30
|
+
router
|
|
31
|
+
.post('/:slug', apiHandler('store'))
|
|
32
|
+
.where('slug', resourceSlug)
|
|
33
|
+
.as('shamar.api.store');
|
|
34
|
+
router
|
|
35
|
+
.put('/:slug/:id', apiHandler('update'))
|
|
36
|
+
.where('slug', resourceSlug)
|
|
37
|
+
.as('shamar.api.update');
|
|
38
|
+
router
|
|
39
|
+
.delete('/:slug/:id', apiHandler('destroy'))
|
|
40
|
+
.where('slug', resourceSlug)
|
|
41
|
+
.as('shamar.api.destroy');
|
|
23
42
|
});
|
|
24
43
|
api.prefix(apiPrefix);
|
|
25
44
|
if (runtime.config.auth?.apiKeys?.protectApi) {
|
|
@@ -60,6 +79,9 @@ function registerPanelRoutes(app, router, runtime, panel) {
|
|
|
60
79
|
router
|
|
61
80
|
.get('/:slug/relation-search', handler('relationSearch', true))
|
|
62
81
|
.as(`${routePrefix}.resources.relationSearch`);
|
|
82
|
+
router
|
|
83
|
+
.get('/:slug/relation-table', handler('relationTable', true))
|
|
84
|
+
.as(`${routePrefix}.resources.relationTable`);
|
|
63
85
|
router
|
|
64
86
|
.post('/:slug/relation-quick-create', handler('relationQuickCreate', true))
|
|
65
87
|
.as(`${routePrefix}.resources.relationQuickCreate`);
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAmB1D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAuB,EACvB,MAAc,EACd,OAAsB;IAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IACnC,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;QACzC,OAAO,KAAK,EAAE,GAAgB,EAAE,EAAE;YAChC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAGX,CAAC;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAmB1D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAuB,EACvB,MAAc,EACd,OAAsB;IAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,6DAA6D;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IACnC,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;QACzC,OAAO,KAAK,EAAE,GAAgB,EAAE,EAAE;YAChC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAGX,CAAC;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5B,0EAA0E;QAC1E,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,8BAA8B;SACtC,CAAC;QAEF,MAAM;aACH,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;aAClC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;aAC3B,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC1B,MAAM;aACH,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;aACrC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;aAC3B,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACzB,MAAM;aACH,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;aACnC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;aAC3B,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC1B,MAAM;aACH,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;aACvC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;aAC3B,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAC3B,MAAM;aACH,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;aAC3C,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;aAC3B,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEtB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAC7C,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CACpD,4CAA4C,CAC7C,CAAC;QACF,GAAG,CAAC,GAAG,CAAC,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAuB,EACvB,MAAc,EACd,OAAsB,EACtB,KAAmB;IAEnB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;IAC1D,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,EAAE,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;QACtD,OAAO,KAAK,EAAE,GAAgB,EAAE,EAAE;YAChC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAGX,CAAC;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAwB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3E,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,EAAE;QAC3C,OAAO,KAAK,EAAE,GAAgB,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAsC,CAAC;YACnE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9B,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;QAC/F,MAAM;aACH,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;aACxD,EAAE,CAAC,GAAG,WAAW,qBAAqB,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;QAClG,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;QAChG,MAAM;aACH,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;aACtD,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;QAExC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,YAAY,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,mBAAmB,CAAC,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,sBAAsB,CAAC,CAAC;QAChG,MAAM;aACH,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;aAC9D,EAAE,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;QACjD,MAAM;aACH,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;aAC5D,EAAE,CAAC,GAAG,WAAW,0BAA0B,CAAC,CAAC;QAChD,MAAM;aACH,IAAI,CAAC,8BAA8B,EAAE,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;aAC1E,EAAE,CAAC,GAAG,WAAW,gCAAgC,CAAC,CAAC;QACtD,MAAM;aACH,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;aAC/D,EAAE,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;QACjD,MAAM;aACH,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;aAC/D,EAAE,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,iBAAiB,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,iBAAiB,CAAC,CAAC;QACnF,MAAM;aACH,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACnD,EAAE,CAAC,GAAG,WAAW,oBAAoB,CAAC,CAAC;QAC1C,MAAM;aACH,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;aAC1D,EAAE,CAAC,GAAG,WAAW,yBAAyB,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,oBAAoB,CAAC,CAAC;QAC5F,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,mBAAmB,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;QAC9F,MAAM;aACH,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aAClC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;aAC7B,EAAE,CAAC,GAAG,WAAW,iBAAiB,CAAC,CAAC;QACvC,MAAM;aACH,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;aAC/B,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;aAC7B,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,GAAG,CAAC;AACX,CAAC"}
|
package/dist/shamar/auth.d.ts
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import type { ShamarHttpContext } from '../context.js';
|
|
2
2
|
import { Authorizer, ForbiddenError, PolicyRegistry, UnauthorizedError, type AuthorizationContext, type CherubimUser, type ResourceAction } from '@shamar/cherubim';
|
|
3
|
-
import type { ResourceMeta, ResourceRegistry } from '@shamar/core';
|
|
3
|
+
import type { ResourceMeta, ResourceRegistry, ShamarUser } from '@shamar/core';
|
|
4
4
|
import type { ShamarConfig } from '../config.js';
|
|
5
5
|
export { ForbiddenError, UnauthorizedError };
|
|
6
6
|
/** Whether panel routes should require an authenticated user. */
|
|
7
7
|
export declare function authRequired(config: ShamarConfig): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* True when the user has at least one role or a direct permission grant.
|
|
10
|
+
* Machine/API principals with abilities count via `permissions`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function userHasAuthorization(user: ShamarUser | CherubimUser | null | undefined): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Panel gate: deny empty authorization unless the panel opts in.
|
|
15
|
+
*/
|
|
16
|
+
export declare function canAccessPanel(user: ShamarUser | CherubimUser | null | undefined, panel?: {
|
|
17
|
+
allowUsersWithoutRoles?: boolean;
|
|
18
|
+
} | null): boolean;
|
|
19
|
+
export declare const PANEL_ACCESS_DENIED_MESSAGE = "You do not have access to this panel. Ask an administrator to assign you a role.";
|
|
8
20
|
export declare function createAuthorizer(config: ShamarConfig, policies: PolicyRegistry): Authorizer;
|
|
9
21
|
/** Map header credentials / session to a Cherubim principal. */
|
|
10
22
|
export declare function resolveShamarUser(ctx: ShamarHttpContext, config: ShamarConfig): Promise<CherubimUser | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/shamar/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/shamar/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EASjB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC;AAE7C,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAI1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAehG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,EAClD,KAAK,CAAC,EAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAClD,OAAO,CAIT;AAED,eAAO,MAAM,2BAA2B,qFAC4C,CAAC;AAErF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,GAAG,UAAU,CAS3F;AA4HD,gEAAgE;AAChE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAK9B;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CA0D/B;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAIT;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,YAAY,EAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACtC,mBAAmB,CAWrB;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAKT;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,OAAO,EACf,OAAO,SAA6B,GACnC,OAAO,CAMT;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAOT;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAIN"}
|
package/dist/shamar/auth.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Authorizer, ForbiddenError, UnauthorizedError, extractAuthCredentials, intersectPermissions, isMachineApiKeyPrincipal, resolveUserPermissions, toCherubimUser, } from '@shamar/cherubim';
|
|
1
|
+
import { Authorizer, ForbiddenError, UnauthorizedError, extractAuthCredentials, intersectPermissions, isMachineApiKeyPrincipal, resolveUserPermissions, sanitizeRoleIds, toCherubimUser, } from '@shamar/cherubim';
|
|
2
2
|
export { ForbiddenError, UnauthorizedError };
|
|
3
3
|
/** Whether panel routes should require an authenticated user. */
|
|
4
4
|
export function authRequired(config) {
|
|
@@ -8,6 +8,41 @@ export function authRequired(config) {
|
|
|
8
8
|
return true;
|
|
9
9
|
return Boolean(config.auth?.guard || config.auth?.resolveUser || config.auth?.apiKeys);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* True when the user has at least one role or a direct permission grant.
|
|
13
|
+
* Machine/API principals with abilities count via `permissions`.
|
|
14
|
+
*/
|
|
15
|
+
export function userHasAuthorization(user) {
|
|
16
|
+
if (!user)
|
|
17
|
+
return false;
|
|
18
|
+
const roleIds = Array.isArray(user.roleIds)
|
|
19
|
+
? user.roleIds
|
|
20
|
+
: Array.isArray(user.roles)
|
|
21
|
+
? user.roles
|
|
22
|
+
: [];
|
|
23
|
+
const hasRole = roleIds.some((id) => {
|
|
24
|
+
if (id == null)
|
|
25
|
+
return false;
|
|
26
|
+
const value = String(id).trim();
|
|
27
|
+
return value !== '' && value !== 'null' && value !== 'undefined';
|
|
28
|
+
});
|
|
29
|
+
if (hasRole)
|
|
30
|
+
return true;
|
|
31
|
+
if (Array.isArray(user.permissions) && user.permissions.length > 0)
|
|
32
|
+
return true;
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Panel gate: deny empty authorization unless the panel opts in.
|
|
37
|
+
*/
|
|
38
|
+
export function canAccessPanel(user, panel) {
|
|
39
|
+
if (!user)
|
|
40
|
+
return false;
|
|
41
|
+
if (panel?.allowUsersWithoutRoles)
|
|
42
|
+
return true;
|
|
43
|
+
return userHasAuthorization(user);
|
|
44
|
+
}
|
|
45
|
+
export const PANEL_ACCESS_DENIED_MESSAGE = 'You do not have access to this panel. Ask an administrator to assign you a role.';
|
|
11
46
|
export function createAuthorizer(config, policies) {
|
|
12
47
|
return new Authorizer({
|
|
13
48
|
superUser: config.auth?.superUser,
|
|
@@ -91,13 +126,15 @@ async function resolveSessionUser(ctx, config) {
|
|
|
91
126
|
name,
|
|
92
127
|
email: typeof raw.email === 'string' ? raw.email : undefined,
|
|
93
128
|
permissions: Array.isArray(raw.permissions) ? raw.permissions : undefined,
|
|
94
|
-
roleIds: Array.isArray(raw.roleIds)
|
|
129
|
+
roleIds: sanitizeRoleIds(Array.isArray(raw.roleIds)
|
|
95
130
|
? raw.roleIds
|
|
96
131
|
: raw.roleId != null && raw.roleId !== ''
|
|
97
|
-
? [
|
|
132
|
+
? [raw.roleId]
|
|
98
133
|
: Array.isArray(raw.roles)
|
|
99
134
|
? raw.roles
|
|
100
|
-
:
|
|
135
|
+
: []),
|
|
136
|
+
authProvider: typeof raw.authProvider === 'string' ? raw.authProvider : undefined,
|
|
137
|
+
ldapDomainId: typeof raw.ldapDomainId === 'string' ? raw.ldapDomainId : undefined,
|
|
101
138
|
});
|
|
102
139
|
}
|
|
103
140
|
catch {
|
|
@@ -130,7 +167,7 @@ export async function buildAuthContext(ctx, config, panelId) {
|
|
|
130
167
|
authMethod = 'pat';
|
|
131
168
|
}
|
|
132
169
|
else if (sessionUser) {
|
|
133
|
-
authMethod = 'session';
|
|
170
|
+
authMethod = sessionUser.authProvider === 'ldap' ? 'ldap' : 'session';
|
|
134
171
|
}
|
|
135
172
|
else if (gateway) {
|
|
136
173
|
authMethod = 'api_key';
|
package/dist/shamar/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shamar/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shamar/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,15 @@ export declare function buildRecordPager(options: {
|
|
|
58
58
|
ids: string[];
|
|
59
59
|
navQuery?: string;
|
|
60
60
|
}): RecordPager | null;
|
|
61
|
+
/**
|
|
62
|
+
* BelongsTo display columns (e.g. `company.name`) → URL for the related record.
|
|
63
|
+
* Returns null for non-relation columns or when the FK is empty.
|
|
64
|
+
*/
|
|
65
|
+
export declare function relatedListLink(meta: ResourceMeta, record: Record<string, unknown>, column: {
|
|
66
|
+
name: string;
|
|
67
|
+
}, basePath: string): string | null;
|
|
68
|
+
/** Show URL for the current list row. */
|
|
69
|
+
export declare function listRecordHref(meta: ResourceMeta, record: Record<string, unknown>, basePath: string, navQuery?: string): string;
|
|
61
70
|
export declare function cellValue(record: Record<string, unknown>, column: {
|
|
62
71
|
name: string;
|
|
63
72
|
type?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-query.d.ts","sourceRoot":"","sources":["../../src/shamar/list-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"list-query.d.ts","sourceRoot":"","sources":["../../src/shamar/list-query.ts"],"names":[],"mappings":"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"}
|