@pikku/addon-console 0.12.25 → 0.12.27
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/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
- package/dist/.pikku/addon/pikku-package.gen.js +2 -2
- package/dist/.pikku/addon/pikku-package.gen.js.map +1 -1
- package/dist/.pikku/agent/pikku-agent-map.gen.d.ts +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +3 -2
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts.map +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.js.map +1 -1
- package/dist/.pikku/auth/auth.types.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.js +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +9 -15
- package/dist/.pikku/function/pikku-function-types.gen.d.ts.map +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +3 -12
- package/dist/.pikku/function/pikku-function-types.gen.js.map +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +314 -287
- package/dist/.pikku/function/pikku-functions.gen.js +27 -27
- package/dist/.pikku/function/pikku-functions.gen.js.map +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +2 -24
- package/dist/.pikku/http/pikku-http-types.gen.d.ts.map +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +2 -24
- package/dist/.pikku/http/pikku-http-types.gen.js.map +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +7 -5
- package/dist/.pikku/pikku-services.gen.d.ts.map +1 -1
- package/dist/.pikku/pikku-services.gen.js +5 -3
- package/dist/.pikku/pikku-services.gen.js.map +1 -1
- package/dist/.pikku/pikku-types.gen.d.ts +2 -1
- package/dist/.pikku/pikku-types.gen.d.ts.map +1 -1
- package/dist/.pikku/pikku-types.gen.js +3 -1
- package/dist/.pikku/pikku-types.gen.js.map +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +43 -34
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +43 -35
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts +200 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +13 -13
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +49 -35
- package/dist/.pikku/schemas/register.gen.js.map +1 -1
- package/dist/.pikku/schemas/schemas/AddonPackageInfo.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/AllMeta.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetAddonInstancesInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetAddonInstancesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetAddonMetaOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetFunctionsMetaOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetOpenapisOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetWebhookDeliveryInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetWorkflowMetaByIdOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/ListWebhookDeliveriesInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ListWebhookDeliveriesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeAddScopeToUserInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeAddScopeToUserOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeAddUserToRoleInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeAddUserToRoleOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeCreateRoleInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeCreateRoleOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeDeleteRoleInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeDeleteRoleOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeListDeclaredOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeListRolesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeListUserRolesInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeListUserRolesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeRemoveScopeFromUserInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeRemoveScopeFromUserOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeRemoveUserFromRoleInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeRemoveUserFromRoleOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeSetRoleScopesInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ScopeSetRoleScopesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/WebhookDeliveryWithAttempts.schema.json +1 -0
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +6 -0
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts.map +1 -0
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +5 -0
- package/dist/.pikku/scopes/pikku-scope-types.gen.js.map +1 -0
- package/dist/.pikku/scopes/pikku-scopes-meta.gen.json +21 -0
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +36 -0
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts.map +1 -0
- package/dist/.pikku/scopes/pikku-scopes.gen.js +30 -0
- package/dist/.pikku/scopes/pikku-scopes.gen.js.map +1 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets-meta.gen.json +1 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts.map +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +11 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js.map +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables-meta.gen.json +1 -0
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts.map +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +13 -3
- package/dist/.pikku/variables/pikku-variables.gen.js.map +1 -1
- package/dist/.pikku/workflow/pikku-workflow-map.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +17 -8
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts.map +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js.map +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/src/functions/get-addon-instances.function.d.ts +25 -0
- package/dist/src/functions/get-addon-instances.function.d.ts.map +1 -0
- package/dist/src/functions/get-addon-instances.function.js +30 -0
- package/dist/src/functions/get-addon-instances.function.js.map +1 -0
- package/dist/src/functions/get-installed-package.function.d.ts.map +1 -1
- package/dist/src/functions/get-installed-package.function.js +13 -13
- package/dist/src/functions/get-installed-package.function.js.map +1 -1
- package/dist/src/functions/get-openapi-detail.function.d.ts.map +1 -1
- package/dist/src/functions/get-openapi-detail.function.js +3 -9
- package/dist/src/functions/get-openapi-detail.function.js.map +1 -1
- package/dist/src/functions/get-openapis.function.d.ts +3 -3
- package/dist/src/functions/get-openapis.function.d.ts.map +1 -1
- package/dist/src/functions/get-openapis.function.js +3 -12
- package/dist/src/functions/get-openapis.function.js.map +1 -1
- package/dist/src/functions/get-webhook-delivery.function.d.ts +9 -0
- package/dist/src/functions/get-webhook-delivery.function.d.ts.map +1 -0
- package/dist/src/functions/get-webhook-delivery.function.js +14 -0
- package/dist/src/functions/get-webhook-delivery.function.js.map +1 -0
- package/dist/src/functions/install-addon.function.d.ts.map +1 -1
- package/dist/src/functions/install-addon.function.js +65 -11
- package/dist/src/functions/install-addon.function.js.map +1 -1
- package/dist/src/functions/list-webhook-deliveries.function.d.ts +12 -0
- package/dist/src/functions/list-webhook-deliveries.function.d.ts.map +1 -0
- package/dist/src/functions/list-webhook-deliveries.function.js +14 -0
- package/dist/src/functions/list-webhook-deliveries.function.js.map +1 -0
- package/dist/src/functions/scope-add-scope-to-user.function.d.ts +17 -0
- package/dist/src/functions/scope-add-scope-to-user.function.d.ts.map +1 -0
- package/dist/src/functions/scope-add-scope-to-user.function.js +16 -0
- package/dist/src/functions/scope-add-scope-to-user.function.js.map +1 -0
- package/dist/src/functions/scope-add-user-to-role.function.d.ts +17 -0
- package/dist/src/functions/scope-add-user-to-role.function.d.ts.map +1 -0
- package/dist/src/functions/scope-add-user-to-role.function.js +16 -0
- package/dist/src/functions/scope-add-user-to-role.function.js.map +1 -0
- package/dist/src/functions/scope-create-role.function.d.ts +20 -0
- package/dist/src/functions/scope-create-role.function.d.ts.map +1 -0
- package/dist/src/functions/scope-create-role.function.js +18 -0
- package/dist/src/functions/scope-create-role.function.js.map +1 -0
- package/dist/src/functions/scope-delete-role.function.d.ts +14 -0
- package/dist/src/functions/scope-delete-role.function.d.ts.map +1 -0
- package/dist/src/functions/scope-delete-role.function.js +16 -0
- package/dist/src/functions/scope-delete-role.function.js.map +1 -0
- package/dist/src/functions/scope-list-declared.function.d.ts +18 -0
- package/dist/src/functions/scope-list-declared.function.d.ts.map +1 -0
- package/dist/src/functions/scope-list-declared.function.js +15 -0
- package/dist/src/functions/scope-list-declared.function.js.map +1 -0
- package/dist/src/functions/scope-list-roles.function.d.ts +9 -0
- package/dist/src/functions/scope-list-roles.function.d.ts.map +1 -0
- package/dist/src/functions/scope-list-roles.function.js +14 -0
- package/dist/src/functions/scope-list-roles.function.js.map +1 -0
- package/dist/src/functions/scope-list-user-roles.function.d.ts +20 -0
- package/dist/src/functions/scope-list-user-roles.function.d.ts.map +1 -0
- package/dist/src/functions/scope-list-user-roles.function.js +23 -0
- package/dist/src/functions/scope-list-user-roles.function.js.map +1 -0
- package/dist/src/functions/scope-remove-scope-from-user.function.d.ts +17 -0
- package/dist/src/functions/scope-remove-scope-from-user.function.d.ts.map +1 -0
- package/dist/src/functions/scope-remove-scope-from-user.function.js +16 -0
- package/dist/src/functions/scope-remove-scope-from-user.function.js.map +1 -0
- package/dist/src/functions/scope-remove-user-from-role.function.d.ts +17 -0
- package/dist/src/functions/scope-remove-user-from-role.function.d.ts.map +1 -0
- package/dist/src/functions/scope-remove-user-from-role.function.js +16 -0
- package/dist/src/functions/scope-remove-user-from-role.function.js.map +1 -0
- package/dist/src/functions/scope-set-role-scopes.function.d.ts +17 -0
- package/dist/src/functions/scope-set-role-scopes.function.d.ts.map +1 -0
- package/dist/src/functions/scope-set-role-scopes.function.js +16 -0
- package/dist/src/functions/scope-set-role-scopes.function.js.map +1 -0
- package/dist/src/functions/take-live-coverage.function.d.ts +1 -1
- package/dist/src/functions/take-live-coverage.function.d.ts.map +1 -1
- package/dist/src/lib/coverage-types.d.ts +25 -0
- package/dist/src/lib/coverage-types.d.ts.map +1 -0
- package/dist/src/lib/coverage-types.js +2 -0
- package/dist/src/lib/coverage-types.js.map +1 -0
- package/dist/src/lib/derive-instance-overrides.d.ts +31 -0
- package/dist/src/lib/derive-instance-overrides.d.ts.map +1 -0
- package/dist/src/lib/derive-instance-overrides.js +72 -0
- package/dist/src/lib/derive-instance-overrides.js.map +1 -0
- package/dist/src/lib/derive-instance-overrides.test.d.ts +2 -0
- package/dist/src/lib/derive-instance-overrides.test.d.ts.map +1 -0
- package/dist/src/lib/derive-instance-overrides.test.js +59 -0
- package/dist/src/lib/derive-instance-overrides.test.js.map +1 -0
- package/dist/src/lib/precise-coverage-map.d.ts +1 -1
- package/dist/src/lib/precise-coverage-map.d.ts.map +1 -1
- package/dist/src/scopes.d.ts +2 -0
- package/dist/src/scopes.d.ts.map +1 -0
- package/dist/src/scopes.js +29 -0
- package/dist/src/scopes.js.map +1 -0
- package/dist/src/services/addon.service.d.ts +37 -0
- package/dist/src/services/addon.service.d.ts.map +1 -1
- package/dist/src/services/addon.service.js +24 -0
- package/dist/src/services/addon.service.js.map +1 -1
- package/dist/src/services/addon.service.test.js +17 -0
- package/dist/src/services/addon.service.test.js.map +1 -1
- package/dist/src/services/wiring.service.d.ts +0 -18
- package/dist/src/services/wiring.service.d.ts.map +1 -1
- package/dist/src/services/wiring.service.js +0 -298
- package/dist/src/services/wiring.service.js.map +1 -1
- package/dist/src/services.d.ts.map +1 -1
- package/dist/src/services.js +3 -4
- package/dist/src/services.js.map +1 -1
- package/package.json +4 -5
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WebhookDeliveryRecord } from '@pikku/core/services';
|
|
2
|
+
export declare const listWebhookDeliveries: import("#pikku").PikkuFunctionConfig<{
|
|
3
|
+
organizationId?: string;
|
|
4
|
+
limit?: number;
|
|
5
|
+
}, WebhookDeliveryRecord[], "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
6
|
+
organizationId?: string;
|
|
7
|
+
limit?: number;
|
|
8
|
+
}, WebhookDeliveryRecord[], "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
9
|
+
organizationId?: string;
|
|
10
|
+
limit?: number;
|
|
11
|
+
}, WebhookDeliveryRecord[], "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
12
|
+
//# sourceMappingURL=list-webhook-deliveries.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-webhook-deliveries.function.d.ts","sourceRoot":"","sources":["../../../src/functions/list-webhook-deliveries.function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAGjE,eAAO,MAAM,qBAAqB;qBACb,MAAM;YAAU,MAAM;;qBAAtB,MAAM;YAAU,MAAM;;qBAAtB,MAAM;YAAU,MAAM;gGAazC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const listWebhookDeliveries = pikkuFunc({
|
|
4
|
+
title: 'List Webhook Deliveries',
|
|
5
|
+
description: 'Lists outgoing webhook deliveries (most recent first), optionally scoped to an organization.',
|
|
6
|
+
expose: true,
|
|
7
|
+
func: async ({ webhookService }, input) => {
|
|
8
|
+
if (!webhookService) {
|
|
9
|
+
throw new MissingServiceError('webhookService is not configured');
|
|
10
|
+
}
|
|
11
|
+
return webhookService.listDeliveries(input ?? undefined);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=list-webhook-deliveries.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-webhook-deliveries.function.js","sourceRoot":"","sources":["../../../src/functions/list-webhook-deliveries.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAG5C;IACA,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,8FAA8F;IAChG,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAAC,kCAAkC,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,cAAc,CAAC,cAAc,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;IAC1D,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const scopeAddScopeToUser: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
userId: string;
|
|
3
|
+
scope: string;
|
|
4
|
+
}, {
|
|
5
|
+
success: boolean;
|
|
6
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
7
|
+
userId: string;
|
|
8
|
+
scope: string;
|
|
9
|
+
}, {
|
|
10
|
+
success: boolean;
|
|
11
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
12
|
+
userId: string;
|
|
13
|
+
scope: string;
|
|
14
|
+
}, {
|
|
15
|
+
success: boolean;
|
|
16
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
17
|
+
//# sourceMappingURL=scope-add-scope-to-user.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-add-scope-to-user.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-add-scope-to-user.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;YACpB,MAAM;WAAS,MAAM;;aACpB,OAAO;;YADR,MAAM;WAAS,MAAM;;aACpB,OAAO;;YADR,MAAM;WAAS,MAAM;;aACpB,OAAO;uEAclB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeAddScopeToUser = pikkuFunc({
|
|
4
|
+
title: 'Grant Scope',
|
|
5
|
+
description: 'Grants a scope directly to a user, outside of any role. Takes effect on their next request — no re-login.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { userId, scope }, { session }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
await scopeService.addScopeToUser(userId, scope, session?.userId);
|
|
13
|
+
return { success: true };
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=scope-add-scope-to-user.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-add-scope-to-user.function.js","sourceRoot":"","sources":["../../../src/functions/scope-add-scope-to-user.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAG1C;IACA,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,2GAA2G;IAC7G,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const scopeAddUserToRole: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
userId: string;
|
|
3
|
+
role: string;
|
|
4
|
+
}, {
|
|
5
|
+
success: boolean;
|
|
6
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
7
|
+
userId: string;
|
|
8
|
+
role: string;
|
|
9
|
+
}, {
|
|
10
|
+
success: boolean;
|
|
11
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
12
|
+
userId: string;
|
|
13
|
+
role: string;
|
|
14
|
+
}, {
|
|
15
|
+
success: boolean;
|
|
16
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
17
|
+
//# sourceMappingURL=scope-add-user-to-role.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-add-user-to-role.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-add-user-to-role.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;YACnB,MAAM;UAAQ,MAAM;;aACnB,OAAO;;YADR,MAAM;UAAQ,MAAM;;aACnB,OAAO;;YADR,MAAM;UAAQ,MAAM;;aACnB,OAAO;uEAclB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeAddUserToRole = pikkuFunc({
|
|
4
|
+
title: 'Grant Role',
|
|
5
|
+
description: 'Grants a role to a user. Takes effect on their next request — no re-login.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { userId, role }, { session }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
await scopeService.addUserToRole(userId, role, session?.userId);
|
|
13
|
+
return { success: true };
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=scope-add-user-to-role.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-add-user-to-role.function.js","sourceRoot":"","sources":["../../../src/functions/scope-add-user-to-role.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAGzC;IACA,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,4EAA4E;IAC9E,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const scopeCreateRole: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
scopes: string[];
|
|
5
|
+
}, {
|
|
6
|
+
success: boolean;
|
|
7
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
scopes: string[];
|
|
11
|
+
}, {
|
|
12
|
+
success: boolean;
|
|
13
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
14
|
+
name: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
scopes: string[];
|
|
17
|
+
}, {
|
|
18
|
+
success: boolean;
|
|
19
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
20
|
+
//# sourceMappingURL=scope-create-role.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-create-role.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-create-role.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;UAClB,MAAM;kBAAgB,MAAM;YAAU,MAAM,EAAE;;aAC3C,OAAO;;UADV,MAAM;kBAAgB,MAAM;YAAU,MAAM,EAAE;;aAC3C,OAAO;;UADV,MAAM;kBAAgB,MAAM;YAAU,MAAM,EAAE;;aAC3C,OAAO;uEAelB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeCreateRole = pikkuFunc({
|
|
4
|
+
title: 'Create Role',
|
|
5
|
+
description: 'Creates a role granting the given scopes.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { name, description, scopes }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
// An undeclared scope is rejected by the pikku_scopes foreign key, so the
|
|
13
|
+
// database is the one enforcing the vocabulary — not this function.
|
|
14
|
+
await scopeService.createRole({ name, description, scopes });
|
|
15
|
+
return { success: true };
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=scope-create-role.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-create-role.function.js","sourceRoot":"","sources":["../../../src/functions/scope-create-role.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAGtC;IACA,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,2CAA2C;IACxD,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const scopeDeleteRole: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
name: string;
|
|
3
|
+
}, {
|
|
4
|
+
success: boolean;
|
|
5
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
6
|
+
name: string;
|
|
7
|
+
}, {
|
|
8
|
+
success: boolean;
|
|
9
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
10
|
+
name: string;
|
|
11
|
+
}, {
|
|
12
|
+
success: boolean;
|
|
13
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
14
|
+
//# sourceMappingURL=scope-delete-role.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-delete-role.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-delete-role.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;UAClB,MAAM;;aACH,OAAO;;UADV,MAAM;;aACH,OAAO;;UADV,MAAM;;aACH,OAAO;uEAalB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeDeleteRole = pikkuFunc({
|
|
4
|
+
title: 'Delete Role',
|
|
5
|
+
description: 'Deletes a role, revoking it from every user who holds it.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { name }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
await scopeService.deleteRole(name);
|
|
13
|
+
return { success: true };
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=scope-delete-role.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-delete-role.function.js","sourceRoot":"","sources":["../../../src/functions/scope-delete-role.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAGtC;IACA,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,2DAA2D;IACxE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACzC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type DeclaredScopeEntry = {
|
|
2
|
+
id: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
/**
|
|
5
|
+
* False for a scope still in the store but no longer declared in code. It
|
|
6
|
+
* authorizes nothing — no function can require it — and is awaiting
|
|
7
|
+
* `pikku scopes prune`.
|
|
8
|
+
*/
|
|
9
|
+
declared: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare const scopeListDeclared: import("#pikku").PikkuFunctionConfig<null, {
|
|
12
|
+
scopes: DeclaredScopeEntry[];
|
|
13
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<null, {
|
|
14
|
+
scopes: DeclaredScopeEntry[];
|
|
15
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<null, {
|
|
16
|
+
scopes: DeclaredScopeEntry[];
|
|
17
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
18
|
+
//# sourceMappingURL=scope-list-declared.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-list-declared.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-list-declared.function.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB;YAElB,kBAAkB,EAAE;;YAApB,kBAAkB,EAAE;;YAApB,kBAAkB,EAAE;uEAe9B,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { pikkuFunc } from '#pikku';
|
|
2
|
+
export const scopeListDeclared = pikkuFunc({
|
|
3
|
+
title: 'List Declared Scopes',
|
|
4
|
+
description: 'Lists the scope vocabulary a role can be composed from, flagging any that are no longer declared in code.',
|
|
5
|
+
expose: true,
|
|
6
|
+
scopes: ['pikku:scopes:read'],
|
|
7
|
+
func: async ({ scopeService }) => {
|
|
8
|
+
if (!scopeService) {
|
|
9
|
+
return { scopes: [] };
|
|
10
|
+
}
|
|
11
|
+
const scopes = await scopeService.listScopes();
|
|
12
|
+
return { scopes: scopes.sort((a, b) => a.id.localeCompare(b.id)) };
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=scope-list-declared.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-list-declared.function.js","sourceRoot":"","sources":["../../../src/functions/scope-list-declared.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAalC,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAGxC;IACA,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,2GAA2G;IAC7G,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,mBAAmB,CAAC;IAC7B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAA;QAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;IACpE,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Role } from '@pikku/core/services';
|
|
2
|
+
export declare const scopeListRoles: import("#pikku").PikkuFunctionConfig<null, {
|
|
3
|
+
roles: Role[];
|
|
4
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<null, {
|
|
5
|
+
roles: Role[];
|
|
6
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<null, {
|
|
7
|
+
roles: Role[];
|
|
8
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
9
|
+
//# sourceMappingURL=scope-list-roles.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-list-roles.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-list-roles.function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,eAAO,MAAM,cAAc;WAA4B,IAAI,EAAE;;WAAN,IAAI,EAAE;;WAAN,IAAI,EAAE;uEAW3D,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { pikkuFunc } from '#pikku';
|
|
2
|
+
export const scopeListRoles = pikkuFunc({
|
|
3
|
+
title: 'List Roles',
|
|
4
|
+
description: 'Lists every role and the scopes it grants.',
|
|
5
|
+
expose: true,
|
|
6
|
+
scopes: ['pikku:scopes:read'],
|
|
7
|
+
func: async ({ scopeService }) => {
|
|
8
|
+
if (!scopeService) {
|
|
9
|
+
return { roles: [] };
|
|
10
|
+
}
|
|
11
|
+
return { roles: await scopeService.listRoles() };
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=scope-list-roles.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-list-roles.function.js","sourceRoot":"","sources":["../../../src/functions/scope-list-roles.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAA0B;IAC/D,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,4CAA4C;IACzD,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,mBAAmB,CAAC;IAC7B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QACtB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,CAAA;IAClD,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const scopeListUserRoles: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
userId: string;
|
|
3
|
+
}, {
|
|
4
|
+
roles: string[];
|
|
5
|
+
scopes: string[];
|
|
6
|
+
directScopes: string[];
|
|
7
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
8
|
+
userId: string;
|
|
9
|
+
}, {
|
|
10
|
+
roles: string[];
|
|
11
|
+
scopes: string[];
|
|
12
|
+
directScopes: string[];
|
|
13
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
14
|
+
userId: string;
|
|
15
|
+
}, {
|
|
16
|
+
roles: string[];
|
|
17
|
+
scopes: string[];
|
|
18
|
+
directScopes: string[];
|
|
19
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
20
|
+
//# sourceMappingURL=scope-list-user-roles.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-list-user-roles.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-list-user-roles.function.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;YACnB,MAAM;;WACP,MAAM,EAAE;YAAU,MAAM,EAAE;kBAAgB,MAAM,EAAE;;YADjD,MAAM;;WACP,MAAM,EAAE;YAAU,MAAM,EAAE;kBAAgB,MAAM,EAAE;;YADjD,MAAM;;WACP,MAAM,EAAE;YAAU,MAAM,EAAE;kBAAgB,MAAM,EAAE;uEAwB3D,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { pikkuFunc } from '#pikku';
|
|
2
|
+
export const scopeListUserRoles = pikkuFunc({
|
|
3
|
+
title: 'List User Roles',
|
|
4
|
+
description: 'Lists the roles a user holds, the scopes granted to them directly, and the full set those resolve to.',
|
|
5
|
+
expose: true,
|
|
6
|
+
scopes: ['pikku:scopes:read'],
|
|
7
|
+
func: async ({ scopeService }, { userId }) => {
|
|
8
|
+
if (!scopeService) {
|
|
9
|
+
return { roles: [], scopes: [], directScopes: [] };
|
|
10
|
+
}
|
|
11
|
+
const [roles, scopes, directScopes] = await Promise.all([
|
|
12
|
+
scopeService.listUserRoles(userId),
|
|
13
|
+
scopeService.resolveScopes(userId),
|
|
14
|
+
scopeService.listUserScopes(userId),
|
|
15
|
+
]);
|
|
16
|
+
return {
|
|
17
|
+
roles: roles.sort(),
|
|
18
|
+
scopes: scopes.sort(),
|
|
19
|
+
directScopes: directScopes.sort(),
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=scope-list-user-roles.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-list-user-roles.function.js","sourceRoot":"","sources":["../../../src/functions/scope-list-user-roles.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAGzC;IACA,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,uGAAuG;IACzG,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,mBAAmB,CAAC;IAC7B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAA;QACpD,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC;YAClC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC;YAClC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;SACpC,CAAC,CAAA;QAEF,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACnB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE;SAClC,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const scopeRemoveScopeFromUser: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
userId: string;
|
|
3
|
+
scope: string;
|
|
4
|
+
}, {
|
|
5
|
+
success: boolean;
|
|
6
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
7
|
+
userId: string;
|
|
8
|
+
scope: string;
|
|
9
|
+
}, {
|
|
10
|
+
success: boolean;
|
|
11
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
12
|
+
userId: string;
|
|
13
|
+
scope: string;
|
|
14
|
+
}, {
|
|
15
|
+
success: boolean;
|
|
16
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
17
|
+
//# sourceMappingURL=scope-remove-scope-from-user.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-remove-scope-from-user.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-remove-scope-from-user.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB;YACzB,MAAM;WAAS,MAAM;;aACpB,OAAO;;YADR,MAAM;WAAS,MAAM;;aACpB,OAAO;;YADR,MAAM;WAAS,MAAM;;aACpB,OAAO;uEAclB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeRemoveScopeFromUser = pikkuFunc({
|
|
4
|
+
title: 'Revoke Scope',
|
|
5
|
+
description: 'Revokes a directly-granted scope from a user. Takes effect on their next request — no re-login.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { userId, scope }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
await scopeService.removeScopeFromUser(userId, scope);
|
|
13
|
+
return { success: true };
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=scope-remove-scope-from-user.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-remove-scope-from-user.function.js","sourceRoot":"","sources":["../../../src/functions/scope-remove-scope-from-user.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAG/C;IACA,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,iGAAiG;IACnG,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const scopeRemoveUserFromRole: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
userId: string;
|
|
3
|
+
role: string;
|
|
4
|
+
}, {
|
|
5
|
+
success: boolean;
|
|
6
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
7
|
+
userId: string;
|
|
8
|
+
role: string;
|
|
9
|
+
}, {
|
|
10
|
+
success: boolean;
|
|
11
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
12
|
+
userId: string;
|
|
13
|
+
role: string;
|
|
14
|
+
}, {
|
|
15
|
+
success: boolean;
|
|
16
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
17
|
+
//# sourceMappingURL=scope-remove-user-from-role.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-remove-user-from-role.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-remove-user-from-role.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,uBAAuB;YACxB,MAAM;UAAQ,MAAM;;aACnB,OAAO;;YADR,MAAM;UAAQ,MAAM;;aACnB,OAAO;;YADR,MAAM;UAAQ,MAAM;;aACnB,OAAO;uEAclB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeRemoveUserFromRole = pikkuFunc({
|
|
4
|
+
title: 'Revoke Role',
|
|
5
|
+
description: 'Revokes a role from a user. Takes effect on their next request — no re-login.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { userId, role }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
await scopeService.removeUserFromRole(userId, role);
|
|
13
|
+
return { success: true };
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=scope-remove-user-from-role.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-remove-user-from-role.function.js","sourceRoot":"","sources":["../../../src/functions/scope-remove-user-from-role.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAG9C;IACA,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,+EAA+E;IACjF,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const scopeSetRoleScopes: import("#pikku").PikkuFunctionConfig<{
|
|
2
|
+
name: string;
|
|
3
|
+
scopes: string[];
|
|
4
|
+
}, {
|
|
5
|
+
success: boolean;
|
|
6
|
+
}, "rpc" | "session", import("#pikku").PikkuFunction<{
|
|
7
|
+
name: string;
|
|
8
|
+
scopes: string[];
|
|
9
|
+
}, {
|
|
10
|
+
success: boolean;
|
|
11
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<{
|
|
12
|
+
name: string;
|
|
13
|
+
scopes: string[];
|
|
14
|
+
}, {
|
|
15
|
+
success: boolean;
|
|
16
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
17
|
+
//# sourceMappingURL=scope-set-role-scopes.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-set-role-scopes.function.d.ts","sourceRoot":"","sources":["../../../src/functions/scope-set-role-scopes.function.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;UACrB,MAAM;YAAU,MAAM,EAAE;;aACrB,OAAO;;UADV,MAAM;YAAU,MAAM,EAAE;;aACrB,OAAO;;UADV,MAAM;YAAU,MAAM,EAAE;;aACrB,OAAO;uEAclB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MissingServiceError } from '@pikku/core/errors';
|
|
2
|
+
import { pikkuFunc } from '#pikku';
|
|
3
|
+
export const scopeSetRoleScopes = pikkuFunc({
|
|
4
|
+
title: 'Set Role Scopes',
|
|
5
|
+
description: 'Replaces the scopes a role grants. Users holding it see the change on their next request.',
|
|
6
|
+
expose: true,
|
|
7
|
+
scopes: ['pikku:scopes:manage'],
|
|
8
|
+
func: async ({ scopeService }, { name, scopes }) => {
|
|
9
|
+
if (!scopeService) {
|
|
10
|
+
throw new MissingServiceError('ScopeService is not configured');
|
|
11
|
+
}
|
|
12
|
+
await scopeService.setRoleScopes(name, scopes);
|
|
13
|
+
return { success: true };
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=scope-set-role-scopes.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-set-role-scopes.function.js","sourceRoot":"","sources":["../../../src/functions/scope-set-role-scopes.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAGzC;IACA,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,2FAA2F;IAC7F,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,qBAAqB,CAAC;IAC/B,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FunctionCoverageReport } from '
|
|
1
|
+
import type { FunctionCoverageReport } from '../lib/coverage-types.js';
|
|
2
2
|
export declare const takeLiveCoverage: import("#pikku").PikkuFunctionConfig<null, FunctionCoverageReport | null, "rpc" | "session", import("#pikku").PikkuFunction<null, FunctionCoverageReport | null, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunctionSessionless<null, FunctionCoverageReport | null, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
3
3
|
//# sourceMappingURL=take-live-coverage.function.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"take-live-coverage.function.d.ts","sourceRoot":"","sources":["../../../src/functions/take-live-coverage.function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"take-live-coverage.function.d.ts","sourceRoot":"","sources":["../../../src/functions/take-live-coverage.function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAOtE,eAAO,MAAM,gBAAgB,sWAiC3B,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type CoverageStatus = 'covered' | 'partial' | 'uncovered' | 'unknown';
|
|
2
|
+
export interface FunctionCoverageEntry {
|
|
3
|
+
name: string;
|
|
4
|
+
sourceFile: string;
|
|
5
|
+
exposed: boolean;
|
|
6
|
+
description: string | null;
|
|
7
|
+
coveredLines: number;
|
|
8
|
+
totalLines: number;
|
|
9
|
+
missedLines: number[];
|
|
10
|
+
ratio: number;
|
|
11
|
+
status: CoverageStatus;
|
|
12
|
+
}
|
|
13
|
+
export interface FunctionCoverageReport {
|
|
14
|
+
generatedAt: string;
|
|
15
|
+
summary: {
|
|
16
|
+
total: number;
|
|
17
|
+
covered: number;
|
|
18
|
+
partial: number;
|
|
19
|
+
uncovered: number;
|
|
20
|
+
unknown: number;
|
|
21
|
+
overallRatio: number;
|
|
22
|
+
};
|
|
23
|
+
functions: FunctionCoverageEntry[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=coverage-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-types.d.ts","sourceRoot":"","sources":["../../../src/lib/coverage-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;AAE5E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,cAAc,CAAA;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,SAAS,EAAE,qBAAqB,EAAE,CAAA;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-types.js","sourceRoot":"","sources":["../../../src/lib/coverage-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-instance override derivation for a second-or-later `wireAddon` of the
|
|
3
|
+
* same package. The first instance of a package uses the package's documented
|
|
4
|
+
* logical names as-is (no overrides); once a package is installed a second
|
|
5
|
+
* time, both instances would otherwise resolve to the SAME secret/variable/
|
|
6
|
+
* credential. Namespace-scoping the new instance's names keeps them isolated.
|
|
7
|
+
*
|
|
8
|
+
* Overrides are only a sensible default the console writes into the generated
|
|
9
|
+
* wiring — the user owns the file and can drop or edit them (the runtime and
|
|
10
|
+
* inspector both treat overrides as optional, falling back to the logical name).
|
|
11
|
+
*/
|
|
12
|
+
export interface AddonDeclaredNames {
|
|
13
|
+
secrets: string[];
|
|
14
|
+
variables: string[];
|
|
15
|
+
credentials: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface InstanceOverrides {
|
|
18
|
+
secretOverrides?: Record<string, string>;
|
|
19
|
+
variableOverrides?: Record<string, string>;
|
|
20
|
+
credentialOverrides?: Record<string, string>;
|
|
21
|
+
}
|
|
22
|
+
/** `@pikku/addon-mandrill` -> `mandrill`. */
|
|
23
|
+
export declare const packageBase: (packageName: string) => string;
|
|
24
|
+
export declare function deriveInstanceOverrides(namespace: string, packageName: string, declared: AddonDeclaredNames): InstanceOverrides;
|
|
25
|
+
/**
|
|
26
|
+
* Read a freshly-installed addon package's declared logical names from the
|
|
27
|
+
* `.pikku` meta it ships in node_modules. Missing meta files are treated as
|
|
28
|
+
* "declares none" — an addon may have no secrets/variables/credentials.
|
|
29
|
+
*/
|
|
30
|
+
export declare function readAddonDeclaredNames(rootDir: string, packageName: string): Promise<AddonDeclaredNames>;
|
|
31
|
+
//# sourceMappingURL=derive-instance-overrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive-instance-overrides.d.ts","sourceRoot":"","sources":["../../../src/lib/derive-instance-overrides.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7C;AASD,6CAA6C;AAC7C,eAAO,MAAM,WAAW,GAAI,aAAa,MAAM,KAAG,MACW,CAAA;AA2B7D,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,kBAAkB,GAC3B,iBAAiB,CAoBnB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAyB7B"}
|