@artemis-studio/plugin-sdk 2026.9.63 → 2026.9.64
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/package.json
CHANGED
|
@@ -1284,6 +1284,22 @@ export interface paths {
|
|
|
1284
1284
|
patch: operations["configure"];
|
|
1285
1285
|
trace?: never;
|
|
1286
1286
|
};
|
|
1287
|
+
"/api/v1/users/{userId}/effective-permissions": {
|
|
1288
|
+
parameters: {
|
|
1289
|
+
query?: never;
|
|
1290
|
+
header?: never;
|
|
1291
|
+
path?: never;
|
|
1292
|
+
cookie?: never;
|
|
1293
|
+
};
|
|
1294
|
+
get: operations["effectivePermissions"];
|
|
1295
|
+
put?: never;
|
|
1296
|
+
post?: never;
|
|
1297
|
+
delete?: never;
|
|
1298
|
+
options?: never;
|
|
1299
|
+
head?: never;
|
|
1300
|
+
patch?: never;
|
|
1301
|
+
trace?: never;
|
|
1302
|
+
};
|
|
1287
1303
|
"/api/v1/time": {
|
|
1288
1304
|
parameters: {
|
|
1289
1305
|
query?: never;
|
|
@@ -3989,6 +4005,19 @@ export interface components {
|
|
|
3989
4005
|
reportUndeclared: boolean;
|
|
3990
4006
|
undeclaredExclusions: string[];
|
|
3991
4007
|
};
|
|
4008
|
+
EffectivePermissionView: {
|
|
4009
|
+
action: string;
|
|
4010
|
+
description?: string | null;
|
|
4011
|
+
scopeType: string;
|
|
4012
|
+
/** Format: uuid */
|
|
4013
|
+
scopeId?: string | null;
|
|
4014
|
+
/** Format: uuid */
|
|
4015
|
+
roleId: string;
|
|
4016
|
+
roleName: string;
|
|
4017
|
+
via: string;
|
|
4018
|
+
effective: boolean;
|
|
4019
|
+
reason?: string | null;
|
|
4020
|
+
};
|
|
3992
4021
|
TimeView: {
|
|
3993
4022
|
/** Format: int64 */
|
|
3994
4023
|
nowMs: number;
|
|
@@ -4046,6 +4075,9 @@ export interface components {
|
|
|
4046
4075
|
PermissionView: {
|
|
4047
4076
|
action: string;
|
|
4048
4077
|
label: string;
|
|
4078
|
+
featureId: string;
|
|
4079
|
+
featureTitle: string;
|
|
4080
|
+
globalOnly: boolean;
|
|
4049
4081
|
};
|
|
4050
4082
|
ManifestFeatureView: {
|
|
4051
4083
|
id: string;
|
|
@@ -7993,6 +8025,28 @@ export interface operations {
|
|
|
7993
8025
|
};
|
|
7994
8026
|
};
|
|
7995
8027
|
};
|
|
8028
|
+
effectivePermissions: {
|
|
8029
|
+
parameters: {
|
|
8030
|
+
query?: never;
|
|
8031
|
+
header?: never;
|
|
8032
|
+
path: {
|
|
8033
|
+
userId: string;
|
|
8034
|
+
};
|
|
8035
|
+
cookie?: never;
|
|
8036
|
+
};
|
|
8037
|
+
requestBody?: never;
|
|
8038
|
+
responses: {
|
|
8039
|
+
/** @description OK */
|
|
8040
|
+
200: {
|
|
8041
|
+
headers: {
|
|
8042
|
+
[name: string]: unknown;
|
|
8043
|
+
};
|
|
8044
|
+
content: {
|
|
8045
|
+
"*/*": components["schemas"]["EffectivePermissionView"][];
|
|
8046
|
+
};
|
|
8047
|
+
};
|
|
8048
|
+
};
|
|
8049
|
+
};
|
|
7996
8050
|
now: {
|
|
7997
8051
|
parameters: {
|
|
7998
8052
|
query?: never;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type UseQueryResult } from
|
|
2
|
-
import { ApiError } from
|
|
3
|
-
import type { components } from
|
|
4
|
-
type Schemas = components[
|
|
5
|
-
export type GrantView = Schemas[
|
|
6
|
-
export type IdentityProviderView = Schemas[
|
|
7
|
-
export type LoginRequest = Schemas[
|
|
8
|
-
export type MeView = Schemas[
|
|
1
|
+
import { type UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import { ApiError } from '../api/request.ts';
|
|
3
|
+
import type { components } from '../api/schema.d.ts';
|
|
4
|
+
type Schemas = components['schemas'];
|
|
5
|
+
export type GrantView = Schemas['GrantView'];
|
|
6
|
+
export type IdentityProviderView = Schemas['IdentityProviderView'];
|
|
7
|
+
export type LoginRequest = Schemas['LoginRequest'];
|
|
8
|
+
export type MeView = Schemas['MeView'];
|
|
9
9
|
export declare const keys: {
|
|
10
10
|
authProviders: readonly ["auth", "providers"];
|
|
11
11
|
me: readonly ["auth", "me"];
|
package/types/sdk/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export { gateFor, type GateVerdict } from '../ui/capabilityGate.ts';
|
|
|
20
20
|
export { useMe } from '../kernel/auth/api.ts';
|
|
21
21
|
export { CodeEditor, type CodeDiagnostic, type CodeEditorProps } from '../ui/CodeEditor.tsx';
|
|
22
22
|
export { ConfirmByTyping } from '../ui/ConfirmByTyping.tsx';
|
|
23
|
-
export { DiagramView, type DiagramAction, type DiagramChoice, type DiagramEdge, type DiagramNode, type DiagramViewProps } from '../ui/DiagramView.tsx';
|
|
23
|
+
export { DiagramView, type DiagramAction, type DiagramChoice, type DiagramEdge, type DiagramNode, type DiagramViewProps, } from '../ui/DiagramView.tsx';
|
|
24
24
|
export { NodeOutcomeSummary, OutcomeSummary, type OutcomeRow } from '../ui/NodeOutcomeSummary.tsx';
|
|
25
25
|
export { Pager } from '../ui/Pager.tsx';
|
|
26
26
|
export { VirtualTable, type GridColumn } from '../ui/VirtualTable.tsx';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HighlightStyle } from
|
|
1
|
+
import { HighlightStyle } from '@codemirror/language';
|
|
2
2
|
/**
|
|
3
3
|
* Every colour comes from `theme.css`, so the editor follows the colour scheme
|
|
4
4
|
* with the rest of the console and neither scheme is inferred from the other
|
package/vite.js
CHANGED
|
@@ -15,9 +15,15 @@ import peers from './peers.json' with { type: 'json' };
|
|
|
15
15
|
* @param {{ id: string, entry?: string, outDir?: string }} options
|
|
16
16
|
* @returns {import('vite').PluginOption[]}
|
|
17
17
|
*/
|
|
18
|
-
export function studioPlugin({
|
|
18
|
+
export function studioPlugin({
|
|
19
|
+
id,
|
|
20
|
+
entry = './src/feature.tsx',
|
|
21
|
+
outDir = 'target/classes/META-INF/artemis-studio/ui',
|
|
22
|
+
}) {
|
|
19
23
|
if (!/^[a-z][a-z0-9]*(-[a-z0-9]+)+$/.test(id)) {
|
|
20
|
-
throw new Error(
|
|
24
|
+
throw new Error(
|
|
25
|
+
`studioPlugin: "${id}" is not a plugin id (lowercase kebab-case, at least two segments, as in plugin.json)`,
|
|
26
|
+
);
|
|
21
27
|
}
|
|
22
28
|
const shared = Object.fromEntries([
|
|
23
29
|
...SHARED_LIBRARIES.map((name) => [
|