@pikku/core 0.12.104 → 0.12.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/dev/module-runner.js +33 -1
  3. package/dist/middleware/index.d.ts +1 -0
  4. package/dist/middleware/index.js +1 -0
  5. package/dist/middleware/remote-jobs-secret.d.ts +14 -0
  6. package/dist/middleware/remote-jobs-secret.js +27 -0
  7. package/dist/services/credential-wire-service.d.ts +15 -0
  8. package/dist/services/credential-wire-service.js +30 -11
  9. package/dist/services/index.d.ts +1 -0
  10. package/dist/services/index.js +1 -0
  11. package/dist/services/remote-jobs.d.ts +27 -0
  12. package/dist/services/remote-jobs.js +59 -0
  13. package/dist/wirings/scheduler/index.d.ts +1 -1
  14. package/dist/wirings/scheduler/index.js +1 -1
  15. package/dist/wirings/scheduler/scheduler-runner.d.ts +4 -0
  16. package/dist/wirings/scheduler/scheduler-runner.js +1 -1
  17. package/package.json +1 -1
  18. package/src/dev/module-runner.test.ts +23 -0
  19. package/src/dev/module-runner.ts +39 -1
  20. package/src/middleware/index.ts +1 -0
  21. package/src/middleware/remote-jobs-secret.ts +35 -0
  22. package/src/public-surface.json +61 -14
  23. package/src/services/credential-wire-service.test.ts +63 -0
  24. package/src/services/credential-wire-service.ts +27 -9
  25. package/src/services/index.ts +10 -0
  26. package/src/services/remote-jobs.test.ts +106 -0
  27. package/src/services/remote-jobs.ts +92 -0
  28. package/src/wirings/scheduler/index.ts +1 -0
  29. package/src/wirings/scheduler/scheduler-runner.ts +1 -1
  30. package/tsconfig.tsbuildinfo +1 -1
  31. package/dist/classification/data-lock.d.ts +0 -80
  32. package/dist/classification/data-lock.js +0 -146
  33. package/dist/column-form.d.ts +0 -32
  34. package/dist/column-form.js +0 -42
  35. package/dist/data-classification.d.ts +0 -64
  36. package/dist/data-classification.js +0 -1
  37. package/dist/ecosystem/agent-scorer.d.ts +0 -12
  38. package/dist/ecosystem/agent-scorer.js +0 -5
  39. package/dist/ecosystem/agent.d.ts +0 -21
  40. package/dist/ecosystem/agent.js +0 -6
  41. package/dist/ecosystem/channel/local.d.ts +0 -3
  42. package/dist/ecosystem/channel/local.js +0 -3
  43. package/dist/ecosystem/channel/serverless.d.ts +0 -9
  44. package/dist/ecosystem/channel/serverless.js +0 -1
  45. package/dist/ecosystem/channel.d.ts +0 -15
  46. package/dist/ecosystem/channel.js +0 -5
  47. package/dist/ecosystem/cli/channel.d.ts +0 -16
  48. package/dist/ecosystem/cli/channel.js +0 -2
  49. package/dist/ecosystem/cli.d.ts +0 -9
  50. package/dist/ecosystem/cli.js +0 -2
  51. package/dist/ecosystem/credential.d.ts +0 -10
  52. package/dist/ecosystem/credential.js +0 -1
  53. package/dist/ecosystem/crypto-utils.d.ts +0 -8
  54. package/dist/ecosystem/crypto-utils.js +0 -1
  55. package/dist/ecosystem/dev.d.ts +0 -9
  56. package/dist/ecosystem/dev.js +0 -2
  57. package/dist/ecosystem/errors.d.ts +0 -8
  58. package/dist/ecosystem/errors.js +0 -2
  59. package/dist/ecosystem/function.d.ts +0 -13
  60. package/dist/ecosystem/function.js +0 -2
  61. package/dist/ecosystem/gateway.d.ts +0 -1
  62. package/dist/ecosystem/gateway.js +0 -1
  63. package/dist/ecosystem/hmac.d.ts +0 -1
  64. package/dist/ecosystem/hmac.js +0 -1
  65. package/dist/ecosystem/http.d.ts +0 -13
  66. package/dist/ecosystem/http.js +0 -5
  67. package/dist/ecosystem/mcp.d.ts +0 -3
  68. package/dist/ecosystem/mcp.js +0 -2
  69. package/dist/ecosystem/middleware.d.ts +0 -18
  70. package/dist/ecosystem/middleware.js +0 -7
  71. package/dist/ecosystem/node-host-resolver.d.ts +0 -1
  72. package/dist/ecosystem/node-host-resolver.js +0 -1
  73. package/dist/ecosystem/node.d.ts +0 -1
  74. package/dist/ecosystem/node.js +0 -1
  75. package/dist/ecosystem/oauth2.d.ts +0 -1
  76. package/dist/ecosystem/oauth2.js +0 -1
  77. package/dist/ecosystem/persona.d.ts +0 -17
  78. package/dist/ecosystem/persona.js +0 -5
  79. package/dist/ecosystem/queue.d.ts +0 -13
  80. package/dist/ecosystem/queue.js +0 -4
  81. package/dist/ecosystem/remote.d.ts +0 -8
  82. package/dist/ecosystem/remote.js +0 -1
  83. package/dist/ecosystem/role.d.ts +0 -4
  84. package/dist/ecosystem/role.js +0 -2
  85. package/dist/ecosystem/rpc.d.ts +0 -6
  86. package/dist/ecosystem/rpc.js +0 -3
  87. package/dist/ecosystem/safe-fetch.d.ts +0 -7
  88. package/dist/ecosystem/safe-fetch.js +0 -1
  89. package/dist/ecosystem/scenario.d.ts +0 -21
  90. package/dist/ecosystem/scenario.js +0 -8
  91. package/dist/ecosystem/scheduler.d.ts +0 -3
  92. package/dist/ecosystem/scheduler.js +0 -2
  93. package/dist/ecosystem/schema.d.ts +0 -2
  94. package/dist/ecosystem/schema.js +0 -1
  95. package/dist/ecosystem/scope.d.ts +0 -5
  96. package/dist/ecosystem/scope.js +0 -3
  97. package/dist/ecosystem/secret.d.ts +0 -11
  98. package/dist/ecosystem/secret.js +0 -2
  99. package/dist/ecosystem/services/istanbul-coverage.d.ts +0 -1
  100. package/dist/ecosystem/services/istanbul-coverage.js +0 -1
  101. package/dist/ecosystem/services/local-content-request-handler.d.ts +0 -9
  102. package/dist/ecosystem/services/local-content-request-handler.js +0 -1
  103. package/dist/ecosystem/services/local-content.d.ts +0 -2
  104. package/dist/ecosystem/services/local-content.js +0 -1
  105. package/dist/ecosystem/services/local-meta.d.ts +0 -1
  106. package/dist/ecosystem/services/local-meta.js +0 -1
  107. package/dist/ecosystem/services/v8-coverage.d.ts +0 -1
  108. package/dist/ecosystem/services/v8-coverage.js +0 -1
  109. package/dist/ecosystem/services.d.ts +0 -36
  110. package/dist/ecosystem/services.js +0 -12
  111. package/dist/ecosystem/testing.d.ts +0 -7
  112. package/dist/ecosystem/testing.js +0 -1
  113. package/dist/ecosystem/trigger.d.ts +0 -2
  114. package/dist/ecosystem/trigger.js +0 -1
  115. package/dist/ecosystem/types.d.ts +0 -12
  116. package/dist/ecosystem/types.js +0 -6
  117. package/dist/ecosystem/variable.d.ts +0 -9
  118. package/dist/ecosystem/variable.js +0 -1
  119. package/dist/ecosystem/virtual-user.d.ts +0 -24
  120. package/dist/ecosystem/virtual-user.js +0 -8
  121. package/dist/ecosystem/workflow.d.ts +0 -20
  122. package/dist/ecosystem/workflow.js +0 -6
  123. package/dist/ecosystem.d.ts +0 -27
  124. package/dist/ecosystem.js +0 -26
  125. package/dist/index.d.ts +0 -60
  126. package/dist/index.js +0 -25
  127. package/dist/middleware/require-unlocked.d.ts +0 -23
  128. package/dist/middleware/require-unlocked.js +0 -21
  129. package/dist/pikku-request.d.ts +0 -8
  130. package/dist/pikku-request.js +0 -15
  131. package/dist/secret-value.d.ts +0 -56
  132. package/dist/secret-value.js +0 -46
  133. package/dist/wirings/data-lock/data-lock-wiring.d.ts +0 -40
  134. package/dist/wirings/data-lock/data-lock-wiring.js +0 -77
  135. package/dist/wirings/data-lock/index.d.ts +0 -9
  136. package/dist/wirings/data-lock/index.js +0 -8
  137. package/dist/wirings/rpc/addon-runner.d.ts +0 -17
  138. package/dist/wirings/rpc/addon-runner.js +0 -150
  139. package/dist/wirings/rpc/remote-addon-auth.d.ts +0 -16
  140. package/dist/wirings/rpc/remote-addon-auth.js +0 -39
  141. package/dist/wirings/rpc/wire-addon.d.ts +0 -62
  142. package/dist/wirings/rpc/wire-addon.js +0 -88
  143. package/dist/wirings/rpc/wire-remote-addon.d.ts +0 -22
  144. package/dist/wirings/rpc/wire-remote-addon.js +0 -11
@@ -1,88 +0,0 @@
1
- import { pikkuState } from '../../pikku-state.js';
2
- import { getTagGroups } from '../../utils.js';
3
- export const wireAddon = (config) => {
4
- pikkuState(null, 'addons', 'packages').set(config.name, {
5
- package: config.package,
6
- rpcEndpoint: config.rpcEndpoint,
7
- auth: config.auth,
8
- tags: config.tags,
9
- ...(config.scopes ? { scopes: config.scopes } : {}),
10
- ...(config.secretOverrides
11
- ? { secretOverrides: config.secretOverrides }
12
- : {}),
13
- ...(config.variableOverrides
14
- ? { variableOverrides: config.variableOverrides }
15
- : {}),
16
- ...(config.credentialOverrides
17
- ? { credentialOverrides: config.credentialOverrides }
18
- : {}),
19
- ...(config.secretGrants ? { secretGrants: config.secretGrants } : {}),
20
- ...(config.credentialGrants
21
- ? { credentialGrants: config.credentialGrants }
22
- : {}),
23
- ...(config.globalSecrets ? { globalSecrets: config.globalSecrets } : {}),
24
- ...(config.globalCredentials
25
- ? { globalCredentials: config.globalCredentials }
26
- : {}),
27
- });
28
- };
29
- /**
30
- * The addon configs a running function is governed by: the named instance when
31
- * the caller resolved one, every instance of the package otherwise.
32
- *
33
- * knowledge: decisions/security/addon-scopes-are-resolved-where-the-function-runs.md
34
- */
35
- const governingAddonConfigs = (packageName, namespace) => {
36
- if (!packageName) {
37
- return [];
38
- }
39
- const addons = pikkuState(null, 'addons', 'packages');
40
- if (!addons) {
41
- return [];
42
- }
43
- if (namespace) {
44
- const config = addons.get(namespace);
45
- if (config?.package === packageName) {
46
- return [config];
47
- }
48
- }
49
- return [...addons.values()].filter((config) => config?.package === packageName);
50
- };
51
- const unionOf = (packageName, namespace, field) => {
52
- const values = new Set();
53
- for (const config of governingAddonConfigs(packageName, namespace)) {
54
- for (const value of config[field] ?? []) {
55
- values.add(value);
56
- }
57
- }
58
- return [...values];
59
- };
60
- /**
61
- * knowledge: decisions/security/addon-scopes-are-resolved-where-the-function-runs.md
62
- */
63
- export const resolveAddonScopes = (packageName, namespace) => unionOf(packageName, namespace, 'scopes');
64
- /**
65
- * knowledge: decisions/security/addon-auth-and-tags-only-tighten.md
66
- */
67
- export const resolveAddonTags = (packageName, namespace) => unionOf(packageName, namespace, 'tags');
68
- /**
69
- * True when any governing instance requires a session. `auth: false` is not
70
- * honoured here — on a direct wiring it would weaken the wiring's own gate.
71
- *
72
- * knowledge: decisions/security/addon-auth-and-tags-only-tighten.md
73
- */
74
- export const resolveAddonAuth = (packageName, namespace) => governingAddonConfigs(packageName, namespace).some((config) => config.auth === true);
75
- /**
76
- * Addon tags name middleware the *consuming app* registered, so they resolve
77
- * against the root tag groups rather than the addon package's own.
78
- *
79
- * knowledge: decisions/security/addon-auth-and-tags-only-tighten.md
80
- */
81
- export const resolveAddonTagMiddleware = (packageName, namespace) => {
82
- const tags = resolveAddonTags(packageName, namespace);
83
- if (tags.length === 0) {
84
- return [];
85
- }
86
- const tagGroups = pikkuState(null, 'middleware', 'tagGroup');
87
- return tags.flatMap((tag) => getTagGroups(tagGroups, tag).flat());
88
- };
@@ -1,22 +0,0 @@
1
- import type { CoreServices, PikkuWire } from '../../types/core.types.js';
2
- /** Sent as `Authorization: Bearer <token>`; a non-default header is declared by the addon. */
3
- export type RemoteAddonAuth = {
4
- credentialId: string;
5
- } | {
6
- secretId: string;
7
- } | {
8
- resolve: (services: CoreServices, wire: PikkuWire) => string | Promise<string>;
9
- };
10
- export type WireRemoteAddonConfig = {
11
- /** Consumer-facing namespace, e.g. `registry` → `rpc('registry:getOpenApi')` */
12
- name: string;
13
- /** Must be installed as a devDependency — `pikku verify` enforces this. */
14
- package: string;
15
- serverUrl: string | ((services: CoreServices) => string | Promise<string>);
16
- /** Omit when the addon declares its remote surface public. */
17
- auth?: RemoteAddonAuth;
18
- /** Map a consumer-facing fn name → the remote fn name, when they differ (rare). */
19
- remoteName?: (fn: string) => string;
20
- tags?: string[];
21
- };
22
- export declare const wireRemoteAddon: (config: WireRemoteAddonConfig) => void;
@@ -1,11 +0,0 @@
1
- import { pikkuState } from '../../pikku-state.js';
2
- export const wireRemoteAddon = (config) => {
3
- pikkuState(null, 'addons', 'packages').set(config.name, {
4
- package: config.package,
5
- tags: config.tags,
6
- remote: true,
7
- serverUrl: config.serverUrl,
8
- ...(config.auth ? { remoteAuth: config.auth } : {}),
9
- ...(config.remoteName ? { remoteName: config.remoteName } : {}),
10
- });
11
- };