@jskit-ai/agent-docs 0.1.257 → 0.1.258
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/guide/agent/app-extras/assistant-conversation.md +88 -35
- package/guide/agent/app-extras/assistant.md +28 -28
- package/guide/agent/app-setup/authentication.md +36 -17
- package/guide/agent/app-setup/database-layer.md +116 -17
- package/guide/agent/app-setup/existing-application-migration.md +29 -25
- package/guide/agent/app-setup/multi-homing.md +94 -48
- package/guide/agent/app-setup/run-an-accounts-hub.md +6 -4
- package/guide/agent/framework/client-features.md +496 -0
- package/guide/agent/framework/crud-operations.md +5 -5
- package/guide/agent/framework/translation.md +4 -3
- package/guide/agent/framework/typed-features.md +1104 -0
- package/guide/agent/framework/ui-operations.md +2 -2
- package/guide/agent/index.md +6 -1
- package/package.json +1 -1
- package/patterns/feature-package/PATTERN.md +104 -10
- package/patterns/feature-package/example/booking-engine/package.json +9 -4
- package/patterns/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
- package/patterns/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
- package/patterns/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
- package/patterns/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
- package/patterns/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
- package/patterns/feature-package/example/booking-engine/src/server/types.js +12 -0
- package/patterns/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
- package/patterns/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
- package/patterns/feature-package/example/variations/availabilityEngineActions.js +26 -0
- package/patterns/feature-package/example/variations/customKnexRepository.js +32 -26
- package/patterns/feature-package/example/variations/invoiceRollupActions.js +26 -0
- package/patterns/feature-package/example/variations/orchestratorService.js +24 -19
- package/patterns/feature-package/example/variations/types.js +7 -0
- package/patterns/minimal-foundation/PATTERN.md +30 -1
- package/patterns/minimal-foundation/example/AGENTS.md +14 -0
- package/patterns/minimal-foundation/example/bin/develop.js +10 -5
- package/patterns/minimal-foundation/example/eslint.config.mjs +21 -2
- package/patterns/minimal-foundation/example/package.json +5 -4
- package/patterns/minimal-foundation/example/playwright.config.mjs +1 -1
- package/patterns/minimal-foundation/example/server/lib/envFile.js +19 -0
- package/patterns/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
- package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/patterns/minimal-foundation/example/server.js +32 -29
- package/patterns/minimal-foundation/example/tests/server/smoke.test.js +2 -1
- package/patterns/shell-foundation/PATTERN.md +29 -0
- package/patterns/shell-foundation/example/AGENTS.md +14 -0
- package/patterns/shell-foundation/example/bin/develop.js +10 -5
- package/patterns/shell-foundation/example/eslint.config.mjs +21 -2
- package/patterns/shell-foundation/example/package.json +6 -5
- package/patterns/shell-foundation/example/packages/main/package.json +1 -1
- package/patterns/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
- package/patterns/shell-foundation/example/playwright.config.mjs +1 -1
- package/patterns/shell-foundation/example/server/lib/envFile.js +19 -0
- package/patterns/shell-foundation/example/server/lib/loggerOptions.js +15 -0
- package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/patterns/shell-foundation/example/server.js +32 -29
- package/patterns/shell-foundation/example/tests/server/smoke.test.js +2 -1
- package/reference/autogen/KERNEL_MAP.md +14 -8
- package/reference/autogen/PATTERN_INDEX.md +37 -37
- package/reference/autogen/README.md +2 -0
- package/reference/autogen/packages/agent-docs.md +70 -26
- package/reference/autogen/packages/agent-runtime.md +129 -0
- package/reference/autogen/packages/agent.md +149 -0
- package/reference/autogen/packages/architecture-inspector.md +97 -44
- package/reference/autogen/packages/assistant-core.md +786 -292
- package/reference/autogen/packages/assistant-runtime.md +182 -57
- package/reference/autogen/packages/assistant-voice-sherpa.md +4 -0
- package/reference/autogen/packages/assistant-voice.md +54 -8
- package/reference/autogen/packages/auth-core.md +44 -13
- package/reference/autogen/packages/auth-provider-local-core.md +86 -34
- package/reference/autogen/packages/auth-provider-local-db-core.md +1 -2
- package/reference/autogen/packages/auth-provider-oidc-core.md +10 -4
- package/reference/autogen/packages/auth-provider-supabase-core.md +52 -66
- package/reference/autogen/packages/auth-web.md +19 -11
- package/reference/autogen/packages/connectors-catalog.md +71 -43
- package/reference/autogen/packages/connectors-core.md +42 -4
- package/reference/autogen/packages/console-core.md +27 -14
- package/reference/autogen/packages/crud-core.md +178 -170
- package/reference/autogen/packages/database-runtime-mysql.md +0 -2
- package/reference/autogen/packages/database-runtime-postgres.md +0 -2
- package/reference/autogen/packages/database-runtime.md +39 -10
- package/reference/autogen/packages/http-runtime.md +79 -57
- package/reference/autogen/packages/json-rest-api-core.md +11 -8
- package/reference/autogen/packages/kernel.md +144 -83
- package/reference/autogen/packages/oidc-issuer-core.md +49 -20
- package/reference/autogen/packages/payments-core.md +20 -3
- package/reference/autogen/packages/realtime.md +47 -22
- package/reference/autogen/packages/resource-core.md +1 -1
- package/reference/autogen/packages/resource-crud-core.md +64 -26
- package/reference/autogen/packages/rewarded-core.md +47 -36
- package/reference/autogen/packages/shell-web.md +7 -10
- package/reference/autogen/packages/storage-runtime.md +6 -2
- package/reference/autogen/packages/uploads-runtime.md +10 -2
- package/reference/autogen/packages/users-core.md +73 -71
- package/reference/autogen/packages/workspaces-core.md +121 -106
- package/reference/autogen/packages/workspaces-web.md +1 -2
- package/reference/autogen/tooling/config-eslint.md +302 -0
- package/reference/autogen/tooling/jskit-catalog.md +28 -18
- package/reference/autogen/tooling/jskit-release.md +35 -20
- package/reference/autogen/tooling/testUtils.md +3 -1
- package/skills/jskit/SKILL.md +3 -2
- package/skills/jskit/references/app-operations.md +1 -1
- package/skills/jskit/references/client-features.md +491 -0
- package/skills/jskit/references/crud-form-actions.md +1 -1
- package/skills/jskit/references/crud-operations.md +7 -7
- package/skills/jskit/references/existing-application-migration.md +31 -27
- package/skills/jskit/references/heuristics/INDEX.md +5 -1
- package/skills/jskit/references/heuristics/child-cruds.md +1 -1
- package/skills/jskit/references/heuristics/client-features.md +66 -0
- package/skills/jskit/references/heuristics/client-requests.md +1 -1
- package/skills/jskit/references/heuristics/crud-authoring.md +12 -2
- package/skills/jskit/references/heuristics/crud-links.md +1 -1
- package/skills/jskit/references/heuristics/crud-repository-mapping.md +3 -3
- package/skills/jskit/references/heuristics/filters.md +1 -1
- package/skills/jskit/references/heuristics/live-actions.md +1 -1
- package/skills/jskit/references/heuristics/page-redirects.md +1 -1
- package/skills/jskit/references/heuristics/page-scaffolding.md +1 -1
- package/skills/jskit/references/heuristics/placements.md +1 -1
- package/skills/jskit/references/heuristics/row-policies.md +1 -1
- package/skills/jskit/references/heuristics/server-search.md +1 -1
- package/skills/jskit/references/heuristics/surfaces.md +1 -1
- package/skills/jskit/references/heuristics/typed-features.md +100 -0
- package/skills/jskit/references/heuristics/ui-contract.md +1 -1
- package/skills/jskit/references/heuristics/ui-testing.md +4 -4
- package/skills/jskit/references/material-3.md +2 -2
- package/skills/jskit/references/multi-homing.md +96 -50
- package/skills/jskit/references/pattern-index.md +37 -37
- package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +30 -1
- package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +14 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +10 -5
- package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +21 -2
- package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +5 -4
- package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +1 -1
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/envFile.js +19 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +32 -29
- package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +2 -1
- package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +29 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +14 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +10 -5
- package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +21 -2
- package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +6 -5
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +1 -1
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/envFile.js +19 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/loggerOptions.js +15 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +32 -29
- package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +2 -1
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/ApplicationAiFeature.js +4 -2
- package/skills/jskit/references/patterns/auth/accounts-hub/PATTERN.md +2 -1
- package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/accounts-hub/example/server/hubPaths.js +9 -3
- package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +25 -12
- package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +7 -1
- package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
- package/skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md +16 -1
- package/skills/jskit/references/patterns/connectors/ai-connections/example/ai-model.js +12 -3
- package/skills/jskit/references/patterns/connectors/ai-connections/example/perplexity-answer.js +15 -4
- package/skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md +9 -1
- package/skills/jskit/references/patterns/connectors/api-key-connection/example/connections.js +5 -2
- package/skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md +13 -3
- package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/s3-transfer.js +14 -3
- package/skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md +8 -0
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/knexfile.js +1 -1
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/scripts/calendar.js +8 -4
- package/skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md +10 -0
- package/skills/jskit/references/patterns/connectors/firebase-messaging/example/server/notifications.js +8 -0
- package/skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md +18 -7
- package/skills/jskit/references/patterns/connectors/google-ads-search/example/ads-setup.js +13 -5
- package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md +11 -2
- package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +5 -2
- package/skills/jskit/references/patterns/connectors/public-image/PATTERN.md +10 -1
- package/skills/jskit/references/patterns/connectors/public-image/example/logo-url.js +4 -1
- package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md +13 -2
- package/skills/jskit/references/patterns/connectors/source-scanning/example/source-scanner.js +9 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +102 -23
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +3 -2
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/types.js +5 -0
- package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +54 -1
- package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +16 -5
- package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +2 -2
- package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
- package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +1 -1
- package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +16 -5
- package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +2 -2
- package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
- package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +1 -1
- package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
- package/skills/jskit/references/patterns/rewards/google-rewarded/example/GoogleRewardedDeliveryProvider.js +1 -1
- package/skills/jskit/references/patterns/rewards/google-rewarded/example/googlePublisherTag.js +5 -11
- package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +104 -10
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +9 -4
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/types.js +12 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/availabilityEngineActions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +32 -26
- package/skills/jskit/references/patterns/server/feature-package/example/variations/invoiceRollupActions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +24 -19
- package/skills/jskit/references/patterns/server/feature-package/example/variations/types.js +7 -0
- package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +16 -1
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +3 -2
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/types.js +5 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +4 -3
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +2 -9
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/types.js +5 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +42 -17
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/WorkspaceInvitationsFeature.js +27 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +11 -10
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteMailer.js +27 -0
- package/skills/jskit/references/translation.md +5 -4
- package/skills/jskit/references/typed-features.md +1099 -0
- package/skills/jskit/references/ui-operations.md +3 -3
- package/patterns/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
- package/patterns/feature-package/example/booking-engine/src/server/actions.js +0 -24
- package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
- package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +0 -24
- package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
- package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
|
@@ -19,7 +19,7 @@ Exports
|
|
|
19
19
|
- `ACCOUNTS_TABLE`
|
|
20
20
|
- `AccountError`
|
|
21
21
|
- `LOCK_AFTER_FAILURES`
|
|
22
|
-
- `createAccountStore(knex,
|
|
22
|
+
- `createAccountStore({ knex, now })`
|
|
23
23
|
- `isEmail(value)`
|
|
24
24
|
- `normalizeEmail(value)`
|
|
25
25
|
- `passwordProblem(password)`
|
|
@@ -33,8 +33,8 @@ Local functions
|
|
|
33
33
|
### `src/server/adapter.js`
|
|
34
34
|
Exports
|
|
35
35
|
- `MODELS_TABLE`
|
|
36
|
-
- `createKnexAdapterClass(knex,
|
|
37
|
-
- `deleteExpiredModels(knex,
|
|
36
|
+
- `createKnexAdapterClass({ knex, now })`
|
|
37
|
+
- `deleteExpiredModels({ knex, now })`
|
|
38
38
|
Local functions
|
|
39
39
|
- `toDate(value)`
|
|
40
40
|
- `isExpired(row, now)`
|
|
@@ -43,7 +43,7 @@ Local functions
|
|
|
43
43
|
Exports
|
|
44
44
|
- `CLIENTS_TABLE`
|
|
45
45
|
- `RegistrationError`
|
|
46
|
-
- `createClientStore(knex,
|
|
46
|
+
- `createClientStore({ knex, now })`
|
|
47
47
|
- `isDevelopmentOrigin(origin, patterns)`
|
|
48
48
|
- `validateRegistrationMetadata(body)`
|
|
49
49
|
Local functions
|
|
@@ -52,11 +52,17 @@ Local functions
|
|
|
52
52
|
- `globToRegExp(pattern)`
|
|
53
53
|
- `assertOnlyValue(body, field, value)`
|
|
54
54
|
|
|
55
|
+
### `src/server/clock.js`
|
|
56
|
+
Exports
|
|
57
|
+
- `systemClock()`
|
|
58
|
+
|
|
55
59
|
### `src/server/config.js`
|
|
56
60
|
Exports
|
|
61
|
+
- `DEV_AUTH_SECRET_HEADER`
|
|
57
62
|
- `HubConfigError`
|
|
58
63
|
- `isLoopbackHostname(hostname)`
|
|
59
64
|
- `resolveHubConfig(env = {}, { appRoot = "" } = {})`
|
|
65
|
+
- `resolveHubDevAuth(env)`
|
|
60
66
|
Local functions
|
|
61
67
|
- `text(value)`
|
|
62
68
|
- `resolveIssuer(env, isProduction)`
|
|
@@ -80,12 +86,12 @@ Exports
|
|
|
80
86
|
|
|
81
87
|
### `src/server/emailTokens.js`
|
|
82
88
|
Exports
|
|
83
|
-
- `createEmailTokenStore(knex,
|
|
89
|
+
- `createEmailTokenStore({ knex, now })`
|
|
84
90
|
|
|
85
91
|
### `src/server/google.js`
|
|
86
92
|
Exports
|
|
87
93
|
- `GOOGLE_ENDPOINTS`
|
|
88
|
-
- `createGoogleSignIn({ google, issuer, Adapter, endpoints
|
|
94
|
+
- `createGoogleSignIn({ google, issuer, Adapter, endpoints, fetchImpl })`
|
|
89
95
|
|
|
90
96
|
### `src/server/http.js`
|
|
91
97
|
Exports
|
|
@@ -97,24 +103,36 @@ Exports
|
|
|
97
103
|
- `parseCookies(header)`
|
|
98
104
|
- `serializeCookie(name, value, { maxAge, secure, path = "/", httpOnly = true, sameSite = "Lax" })`
|
|
99
105
|
|
|
106
|
+
### `src/server/hub.js`
|
|
107
|
+
Exports
|
|
108
|
+
- `createHub({ knex, config, devAuth, logger, mailer, now, googleEndpoints, fetchImpl })`
|
|
109
|
+
|
|
100
110
|
### `src/server/hubRoutes.js`
|
|
101
111
|
Exports
|
|
102
112
|
- `registerHubRoutes(app, hub)`
|
|
113
|
+
- `type HubRouteSupport`
|
|
103
114
|
Local functions
|
|
104
115
|
- `accountView(account)`
|
|
105
116
|
- `appView(row)`
|
|
106
117
|
- `isLoopbackRequest(request)`
|
|
118
|
+
- `createHubRouteSupport(hub)`
|
|
119
|
+
- `registerInteractionRoutes(app, hub, support)`
|
|
120
|
+
- `registerSignInRoutes(app, hub, support)`
|
|
121
|
+
- `registerAccountRoutes(app, hub, support)`
|
|
122
|
+
- `registerGoogleRoutes(app, hub, support)`
|
|
123
|
+
- `registerAdminRoutes(app, hub, support)`
|
|
124
|
+
- `registerDevelopmentRoutes(app, hub, support)`
|
|
107
125
|
|
|
108
126
|
### `src/server/hubSessions.js`
|
|
109
127
|
Exports
|
|
110
|
-
- `createHubSessionStore(knex,
|
|
111
|
-
- `createSettingStore(knex)`
|
|
128
|
+
- `createHubSessionStore({ knex, now })`
|
|
129
|
+
- `createSettingStore({ knex })`
|
|
112
130
|
- `hubSessionCookieName(config)`
|
|
113
131
|
|
|
114
132
|
### `src/server/importAccounts.js`
|
|
115
133
|
Exports
|
|
116
134
|
- `describeImport(result, { apply })`
|
|
117
|
-
- `importAccounts({ knex, text, apply = false, now })`
|
|
135
|
+
- `importAccounts({ knex, text, apply = false, now = systemClock })`
|
|
118
136
|
Local functions
|
|
119
137
|
- `parseLine(line)`
|
|
120
138
|
- `samePassword(existing, row)`
|
|
@@ -134,7 +152,7 @@ Exports
|
|
|
134
152
|
### `src/server/issuer.js`
|
|
135
153
|
Exports
|
|
136
154
|
- `HUB_GLOBAL_PATHS`
|
|
137
|
-
- `createOidcIssuer({ knex, env
|
|
155
|
+
- `createOidcIssuer({ knex, env, logger, mailer, now = systemClock, appRoot = "", googleEndpoints = GOOGLE_ENDPOINTS, fetchImpl = globalThis.fetch })`
|
|
138
156
|
Local functions
|
|
139
157
|
- `isHubPath(url)`
|
|
140
158
|
- `bearerToken(request)`
|
|
@@ -145,26 +163,26 @@ Local functions
|
|
|
145
163
|
### `src/server/mailer.js`
|
|
146
164
|
Exports
|
|
147
165
|
- `composeMessage({ heading, body, actionLabel, actionUrl, footer })`
|
|
148
|
-
- `createMailer({ mail, logger, isProduction, fetchImpl
|
|
166
|
+
- `createMailer({ mail, logger, isProduction, fetchImpl })`
|
|
149
167
|
|
|
150
168
|
### `src/server/oidcProvider.js`
|
|
151
169
|
Exports
|
|
152
170
|
- `ACTIVE_STATUSES`
|
|
153
171
|
- `HUB_SCOPES`
|
|
154
|
-
- `createOidcProvider({ config, jwks, Adapter, accounts, clients, hasHubSession
|
|
172
|
+
- `createOidcProvider({ config, jwks, Adapter, accounts, clients, hasHubSession })`
|
|
155
173
|
Local functions
|
|
156
174
|
- `interactionPath(uid)`
|
|
157
175
|
- `interactionsPolicy(hasHubSession)`
|
|
158
176
|
|
|
159
177
|
### `src/server/previewIdentity.js`
|
|
160
178
|
Exports
|
|
161
|
-
- `
|
|
162
|
-
- `
|
|
179
|
+
- `DEFAULT_PREVIEW_IDENTITY_PROTOCOL`
|
|
180
|
+
- `executePreviewIdentityRequest(request, { env, fetchImpl = globalThis.fetch, protocol = DEFAULT_PREVIEW_IDENTITY_PROTOCOL, localHostnames = [] })`
|
|
181
|
+
- `runPreviewIdentityCommand({ env, fetchImpl = globalThis.fetch, stdin = process.stdin, stdout = process.stdout, protocol = DEFAULT_PREVIEW_IDENTITY_PROTOCOL, localHostnames = [] })`
|
|
163
182
|
Local functions
|
|
164
|
-
- `failure(requestId, code, message, statusCode = 400)`
|
|
183
|
+
- `failure(protocol, requestId, code, message, statusCode = 400)`
|
|
165
184
|
- `readInput(stream)`
|
|
166
|
-
- `localOrigin(value)`
|
|
167
|
-
- `setCookies(response)`
|
|
185
|
+
- `localOrigin(value, localHostnames)`
|
|
168
186
|
|
|
169
187
|
### `src/server/providers/OidcIssuerProvider.js`
|
|
170
188
|
Exports
|
|
@@ -172,11 +190,21 @@ Exports
|
|
|
172
190
|
|
|
173
191
|
### `src/server/rateLimits.js`
|
|
174
192
|
Exports
|
|
175
|
-
- `createRateLimiter(knex,
|
|
193
|
+
- `createRateLimiter({ knex, now })`
|
|
176
194
|
|
|
177
195
|
### `src/server/signingKeys.js`
|
|
178
196
|
Exports
|
|
179
|
-
- `createSigningKeyStore(knex,
|
|
197
|
+
- `createSigningKeyStore({ knex, secret, now })`
|
|
198
|
+
|
|
199
|
+
### `src/server/types.js`
|
|
200
|
+
Exports
|
|
201
|
+
- `type AuthOidcIssuer`
|
|
202
|
+
- `type HubConfig`
|
|
203
|
+
- `type HubAdapterClass`
|
|
204
|
+
- `type Hub`
|
|
205
|
+
- `type HubMailer`
|
|
206
|
+
- `type HubClock`
|
|
207
|
+
- `type GoogleEndpoints`
|
|
180
208
|
|
|
181
209
|
### bin
|
|
182
210
|
|
|
@@ -186,6 +214,7 @@ Exports
|
|
|
186
214
|
Local functions
|
|
187
215
|
- `loadDotEnv()`
|
|
188
216
|
- `withKnex(work)`
|
|
217
|
+
- `previewIdentityHost(args)`
|
|
189
218
|
- `main(argv)`
|
|
190
219
|
|
|
191
220
|
### migrations
|
|
@@ -198,4 +227,4 @@ Exports
|
|
|
198
227
|
|
|
199
228
|
### `patterns/accounts-hub/example/server/hubPaths.js`
|
|
200
229
|
Exports
|
|
201
|
-
- `hubGlobalUiPaths(runtimeGlobalUiPaths
|
|
230
|
+
- `hubGlobalUiPaths(runtimeGlobalUiPaths)`
|
|
@@ -51,7 +51,9 @@ Exports
|
|
|
51
51
|
|
|
52
52
|
### `src/server/readiness.js`
|
|
53
53
|
Exports
|
|
54
|
-
- `createPaymentReadiness({ adapter, catalogue, scope, inspectApplication })`
|
|
54
|
+
- `createPaymentReadiness({ adapter, catalogue, scope, inspectApplication = inspectNoApplicationEvidence })`
|
|
55
|
+
Local functions
|
|
56
|
+
- `inspectNoApplicationEvidence()`
|
|
55
57
|
|
|
56
58
|
### `src/server/service.js`
|
|
57
59
|
Exports
|
|
@@ -74,11 +76,26 @@ Local functions
|
|
|
74
76
|
- `id(value)`
|
|
75
77
|
- `invalid()`
|
|
76
78
|
|
|
79
|
+
### `src/server/types.js`
|
|
80
|
+
Exports
|
|
81
|
+
- `type PaymentCatalogue`
|
|
82
|
+
- `type PaymentCheckoutService`
|
|
83
|
+
- `type PaymentReadiness`
|
|
84
|
+
- `type PaymentService`
|
|
85
|
+
- `type PaymentConfiguration`
|
|
86
|
+
- `type PaymentMerchantScope`
|
|
87
|
+
- `type PaymentAccountScope`
|
|
88
|
+
- `type PaymentAccountState`
|
|
89
|
+
- `type PaymentAccountTransaction`
|
|
90
|
+
- `type PaymentCatalogueState`
|
|
91
|
+
- `type PaymentStore`
|
|
92
|
+
- `type PaymentProviderPage`
|
|
93
|
+
- `type PaymentProviderPrice`
|
|
94
|
+
- `type PaymentProviderAdapter`
|
|
95
|
+
|
|
77
96
|
### `src/shared/configuration.js`
|
|
78
97
|
Exports
|
|
79
98
|
- `validatePaymentConfiguration(document)`
|
|
80
|
-
Local functions
|
|
81
|
-
- `configurationError(message, fieldErrors, { messageCode, messageParams = {} })`
|
|
82
99
|
|
|
83
100
|
### migrations
|
|
84
101
|
|
|
@@ -43,7 +43,7 @@ Exports
|
|
|
43
43
|
- `RealtimeClientProvider`
|
|
44
44
|
- `resolveRealtimeClientConfig({ env = {}, mobile = null } = {})`
|
|
45
45
|
Local functions
|
|
46
|
-
- `createRealtimeClient({ config,
|
|
46
|
+
- `createRealtimeClient({ config, logger: appLogger })`
|
|
47
47
|
- `trackServedClientBuild(socket, logger)`
|
|
48
48
|
|
|
49
49
|
### `src/client/runtime.js`
|
|
@@ -54,47 +54,65 @@ Exports
|
|
|
54
54
|
|
|
55
55
|
### `src/server/realtimeAudience.js`
|
|
56
56
|
Exports
|
|
57
|
+
- `authenticationRequiredError()`
|
|
57
58
|
- `createAudienceContributors()`
|
|
58
59
|
- `createSocketRequest(socket)`
|
|
59
|
-
- `realtimeAuthenticationRequired(authService
|
|
60
|
-
- `revalidateSocket({ socket, authService, audiences
|
|
61
|
-
- `registerSocketAudienceBootstrap({ io, logger, authService
|
|
62
|
-
- `resolveAudienceTargets(audience, event, { database
|
|
60
|
+
- `realtimeAuthenticationRequired(authService)`
|
|
61
|
+
- `revalidateSocket({ socket, authService, audiences, request, authenticateRequest })`
|
|
62
|
+
- `registerSocketAudienceBootstrap({ io, logger, authService, audiences })`
|
|
63
|
+
- `resolveAudienceTargets(audience, event, { database, logger })`
|
|
64
|
+
- `type AuthService`
|
|
65
|
+
- `type RuntimeDatabase`
|
|
66
|
+
- `type RuntimeLogger`
|
|
67
|
+
- `type ActorRoomsResolver`
|
|
68
|
+
- `type AudienceContributors`
|
|
63
69
|
Local functions
|
|
64
|
-
- `
|
|
70
|
+
- `flattenEntries(value)`
|
|
65
71
|
- `roomForUser(userId)`
|
|
66
72
|
- `roomForWorkspace(workspaceId)`
|
|
67
73
|
- `roomForWorkspaceUser(workspaceId, userId)`
|
|
68
|
-
- `resolveScopeWorkspaceId(scope
|
|
69
|
-
- `resolveScopeUserId(scope
|
|
70
|
-
- `roomForScope(scope
|
|
74
|
+
- `resolveScopeWorkspaceId(scope)`
|
|
75
|
+
- `resolveScopeUserId(scope)`
|
|
76
|
+
- `roomForScope(scope)`
|
|
71
77
|
- `applyAudiencePreset(preset, { event, rooms, flags, logger })`
|
|
72
78
|
- `addAudienceRooms(selection, state)`
|
|
73
79
|
- `collectUserIds(rows)`
|
|
74
80
|
- `parseCookieHeader(value = "")`
|
|
75
|
-
- `
|
|
76
|
-
- `
|
|
81
|
+
- `authenticateWithoutRefresh(authService)`
|
|
82
|
+
- `resolveSocketAuthentication(authService, socket, request = createSocketRequest(socket), authenticateRequest = authenticateWithoutRefresh(authService))`
|
|
77
83
|
- `sessionRefreshRequiredError()`
|
|
78
84
|
- `rememberSocketActorId(socket, actorId)`
|
|
79
85
|
- `registerSocketAuthentication({ io, logger, authService })`
|
|
80
86
|
- `joinContributedRooms(socket, actorId, audiences)`
|
|
81
87
|
|
|
88
|
+
### `src/server/realtimeCapability.js`
|
|
89
|
+
Exports
|
|
90
|
+
- `createRealtimeCapability({ io, logger, authService, database, events, appRoot, redis })`
|
|
91
|
+
- `type AuthService`
|
|
92
|
+
- `type RuntimeDatabase`
|
|
93
|
+
- `type RuntimeAppRoot`
|
|
94
|
+
- `type RuntimeEvents`
|
|
95
|
+
- `type RuntimeLogger`
|
|
96
|
+
|
|
82
97
|
### `src/server/realtimeDelivery.js`
|
|
83
98
|
Exports
|
|
84
|
-
- `createRealtimeDelivery({ io, database
|
|
99
|
+
- `createRealtimeDelivery({ io, database, logger, authService, audiences: { mayContribute, resolveActorRooms } })`
|
|
100
|
+
- `matchesRealtimeEvent(event)`
|
|
101
|
+
- `type AuthService`
|
|
102
|
+
- `type ActorRoomsResolver`
|
|
103
|
+
- `type AudienceContributors`
|
|
85
104
|
Local functions
|
|
86
105
|
- `publicRealtimePayload(event)`
|
|
87
|
-
- `
|
|
88
|
-
- `
|
|
106
|
+
- `valueAsKey(value)`
|
|
107
|
+
- `sharedWithinPass(load, keyOf = valueAsKey)`
|
|
108
|
+
- `createPassChecks(authService, resolveActorRooms)`
|
|
89
109
|
|
|
90
110
|
### `src/server/RealtimeProvider.js`
|
|
91
111
|
Exports
|
|
92
112
|
- `RealtimeProvider`
|
|
93
113
|
Local functions
|
|
94
|
-
- `parseDebugFlag(value, fallback
|
|
114
|
+
- `parseDebugFlag(value, fallback)`
|
|
95
115
|
- `debugEnabled(config, env)`
|
|
96
|
-
- `authenticationRequiredError()`
|
|
97
|
-
- `createRealtimeCapability({ io })`
|
|
98
116
|
|
|
99
117
|
### `src/server/runtime.js`
|
|
100
118
|
Exports
|
|
@@ -102,12 +120,12 @@ Exports
|
|
|
102
120
|
- `closeSocketIoServer(io)`
|
|
103
121
|
- `REDIS_URL_ENV_KEY`
|
|
104
122
|
- `REDIS_NAMESPACE_ENV_KEY`
|
|
105
|
-
- `resolveRealtimeRedisUrl(env
|
|
106
|
-
- `resolveRealtimeRedisNamespace(env
|
|
107
|
-
- `configureSocketIoRedisAdapter(io, { redisUrl = "", redisNamespace = "", logger
|
|
108
|
-
- `closeSocketIoRedisConnections({ pubClient
|
|
123
|
+
- `resolveRealtimeRedisUrl(env)`
|
|
124
|
+
- `resolveRealtimeRedisNamespace(env)`
|
|
125
|
+
- `configureSocketIoRedisAdapter(io, { redisUrl = "", redisNamespace = "", logger, createRedisAdapter = createSocketIoRedisAdapter, createRedisConnection = createRedisClient })`
|
|
126
|
+
- `closeSocketIoRedisConnections({ pubClient, subClient })`
|
|
127
|
+
- `countConnectedClients(io)`
|
|
109
128
|
Local functions
|
|
110
|
-
- `toRequestPathname(urlValue)`
|
|
111
129
|
- `registerSocketIoUpgradeHandoff(fastify)`
|
|
112
130
|
- `resolveHttpServer({ httpServer = null, fastify = null } = {})`
|
|
113
131
|
- `buildSocketIoRedisAdapterKey(redisNamespace = "")`
|
|
@@ -116,6 +134,13 @@ Local functions
|
|
|
116
134
|
Exports
|
|
117
135
|
- `announceServedClientBuild({ io, appRoot, logger })`
|
|
118
136
|
|
|
137
|
+
### `src/server/types.js`
|
|
138
|
+
Exports
|
|
139
|
+
- `type RuntimeRealtime`
|
|
140
|
+
- `type ActorRoomsResolver`
|
|
141
|
+
- `type AudienceContributors`
|
|
142
|
+
- `type RealtimeAudienceContributor`
|
|
143
|
+
|
|
119
144
|
### `src/shared/servedClientBuild.js`
|
|
120
145
|
Exports
|
|
121
146
|
- `SERVED_CLIENT_BUILD_EVENT`
|
|
@@ -20,7 +20,7 @@ Exports
|
|
|
20
20
|
- `defineResource(resource = {})`
|
|
21
21
|
- `normalizeSchemaDefinitionLike(value, { context = "schema definition", defaultMode = "patch" } = {})`
|
|
22
22
|
Local functions
|
|
23
|
-
- `resolveDefaultOperationSchemaMode(sectionName, operation
|
|
23
|
+
- `resolveDefaultOperationSchemaMode(sectionName, operation)`
|
|
24
24
|
- `normalizeOperationDefinition(operationName, operation = null, resourceMessages = null)`
|
|
25
25
|
- `normalizeResourceOperations(operations = null, resourceMessages = null)`
|
|
26
26
|
- `requireResourceNamespace(value, { context = "defineResource resource.namespace" } = {})`
|
|
@@ -21,15 +21,14 @@ Exports
|
|
|
21
21
|
- `CRUD_FIELD_WRITE_SERIALIZER_DATETIME_UTC`
|
|
22
22
|
- `CRUD_LOOKUP_FORM_CONTROL_AUTOCOMPLETE`
|
|
23
23
|
- `CRUD_LOOKUP_FORM_CONTROL_SELECT`
|
|
24
|
-
- `checkCrudLookupFormControl(value, { context = "crud field ui.formControl", defaultValue = CRUD_LOOKUP_FORM_CONTROL_AUTOCOMPLETE } = {})`
|
|
25
24
|
- `resolveCrudFieldSchemaProperties(value, { context = "crud resource field definitions" } = {})`
|
|
26
25
|
- `normalizeCrudFieldStorageConfig(fieldDefinition = {}, { context = "crud field storage", fieldKey = "" } = {})`
|
|
27
26
|
- `buildCrudOperationSchemaFields(fields = {}, operationName = "")`
|
|
28
|
-
- `buildCrudFieldContractMap(resource
|
|
29
|
-
- `resolveCrudFieldContractEntry(resource = {}, fieldKey = "", options = {})`
|
|
27
|
+
- `buildCrudFieldContractMap(resource, { context = "crud resource field contract" } = {})`
|
|
30
28
|
Local functions
|
|
31
29
|
- `cloneStructuredFieldMetadata(value = {})`
|
|
32
30
|
- `mergeFieldContractEntry(target, source, { context = "crud field contract", fieldKey = "" } = {})`
|
|
31
|
+
- `resolveCrudFieldOperations(fieldDefinition)`
|
|
33
32
|
|
|
34
33
|
### `src/shared/crudListFilters.js`
|
|
35
34
|
Exports
|
|
@@ -49,10 +48,52 @@ Exports
|
|
|
49
48
|
- `CRUD_LIST_FILTER_INVALID_VALUES_REJECT`
|
|
50
49
|
- `CRUD_LIST_FILTER_INVALID_VALUES_DISCARD`
|
|
51
50
|
- `INVALID_CRUD_LIST_FILTER_QUERY_VALUE`
|
|
51
|
+
- `normalizeCrudListFilterInvalidValues`
|
|
52
|
+
- `parseCrudListRangeQueryExpression`
|
|
53
|
+
- `formatCrudListRangeQueryExpression`
|
|
54
|
+
- `createCrudListFilterEmptyValue`
|
|
55
|
+
- `createCrudListFilterInitialValue`
|
|
56
|
+
- `isCrudListFilterMultiValue`
|
|
57
|
+
- `isCrudListFilterStructuredValue`
|
|
58
|
+
- `normalizeCrudListFilterUiValue`
|
|
59
|
+
- `areCrudListFilterUiValuesEqual`
|
|
60
|
+
- `hasCrudListFilterUiValue`
|
|
61
|
+
- `listCrudListFilterChipValues`
|
|
62
|
+
- `formatCrudListFilterDefaultChipLabel`
|
|
63
|
+
- `formatCrudListFilterQueryValue`
|
|
64
|
+
- `parseCrudListFilterQueryValue`
|
|
65
|
+
- `defineCrudListFilters(definitions = {})`
|
|
66
|
+
- `resolveCrudListFilterQueryKeys(definition = {})`
|
|
67
|
+
- `resolveCrudListFilterOptionLabel(definition = {}, value = "", { fallback = "" } = {})`
|
|
68
|
+
Local functions
|
|
69
|
+
- `normalizeCrudListFilterOption(rawOption = null, { context = "filter option" } = {})`
|
|
70
|
+
- `normalizeCrudListFilterOptions(rawOptions = [], { context = "filter options" } = {})`
|
|
71
|
+
- `normalizeCrudListFilterPresenceOptions(rawOptions = [])`
|
|
72
|
+
- `normalizeCrudListFilterLookup(rawLookup = null)`
|
|
73
|
+
- `resolveCrudListFilterOptionSet(rawDefinition = {}, type = "")`
|
|
74
|
+
- `normalizeCrudListFilterDefinition(rawKey = "", rawDefinition = null)`
|
|
75
|
+
|
|
76
|
+
### `src/shared/crudListFilterValues.js`
|
|
77
|
+
Exports
|
|
78
|
+
- `CRUD_LIST_FILTER_TYPE_FLAG`
|
|
79
|
+
- `CRUD_LIST_FILTER_TYPE_ENUM`
|
|
80
|
+
- `CRUD_LIST_FILTER_TYPE_ENUM_MANY`
|
|
81
|
+
- `CRUD_LIST_FILTER_TYPE_RECORD_ID`
|
|
82
|
+
- `CRUD_LIST_FILTER_TYPE_RECORD_ID_MANY`
|
|
83
|
+
- `CRUD_LIST_FILTER_TYPE_DATE`
|
|
84
|
+
- `CRUD_LIST_FILTER_TYPE_DATE_RANGE`
|
|
85
|
+
- `CRUD_LIST_FILTER_TYPE_NUMBER_RANGE`
|
|
86
|
+
- `CRUD_LIST_FILTER_TYPE_PRESENCE`
|
|
87
|
+
- `CRUD_LIST_FILTER_TYPES`
|
|
88
|
+
- `CRUD_LIST_FILTER_PRESENCE_PRESENT`
|
|
89
|
+
- `CRUD_LIST_FILTER_PRESENCE_MISSING`
|
|
90
|
+
- `CRUD_LIST_FILTER_PRESENCE_OPTIONS`
|
|
91
|
+
- `CRUD_LIST_FILTER_INVALID_VALUES_REJECT`
|
|
92
|
+
- `CRUD_LIST_FILTER_INVALID_VALUES_DISCARD`
|
|
93
|
+
- `INVALID_CRUD_LIST_FILTER_QUERY_VALUE`
|
|
52
94
|
- `normalizeCrudListFilterInvalidValues(value = "")`
|
|
53
95
|
- `parseCrudListRangeQueryExpression(value = null)`
|
|
54
96
|
- `formatCrudListRangeQueryExpression(startValue = "", endValue = "", { collapseExact = false } = {})`
|
|
55
|
-
- `defineCrudListFilters(definitions = {})`
|
|
56
97
|
- `createCrudListFilterEmptyValue(filter = {})`
|
|
57
98
|
- `createCrudListFilterInitialValue(filter = {})`
|
|
58
99
|
- `isCrudListFilterMultiValue(filter = {})`
|
|
@@ -61,11 +102,10 @@ Exports
|
|
|
61
102
|
- `areCrudListFilterUiValuesEqual(filter = {}, currentValue, expectedValue)`
|
|
62
103
|
- `hasCrudListFilterUiValue(filter = {}, rawValue)`
|
|
63
104
|
- `listCrudListFilterChipValues(filter = {}, rawValue)`
|
|
64
|
-
- `formatCrudListFilterDefaultChipLabel(filter = {}, rawValue, { resolveAtomicValue =
|
|
105
|
+
- `formatCrudListFilterDefaultChipLabel(filter = {}, rawValue, { resolveAtomicValue: resolveAtomicLabel = atomicValueText } = {})`
|
|
65
106
|
- `formatCrudListFilterQueryValue(filter = {}, value)`
|
|
66
107
|
- `parseCrudListFilterQueryValue(filter = {}, value, { invalidValues = CRUD_LIST_FILTER_INVALID_VALUES_REJECT } = {})`
|
|
67
|
-
- `
|
|
68
|
-
- `resolveCrudListFilterOptionLabel(definition = {}, value = "", { fallback = "" } = {})`
|
|
108
|
+
- `normalizeCrudListFilterType(value = "")`
|
|
69
109
|
Local functions
|
|
70
110
|
- `firstCrudListFilterValue(value)`
|
|
71
111
|
- `isPrimitiveCrudListFilterInput(value)`
|
|
@@ -79,21 +119,16 @@ Local functions
|
|
|
79
119
|
- `normalizeCrudListDateRangeUiValue(rawValue)`
|
|
80
120
|
- `normalizeCrudListNumberRangeUiValue(rawValue)`
|
|
81
121
|
- `matchCrudListFilterValues(currentValue, expectedValue)`
|
|
82
|
-
- `rejectInvalidCrudListFilterValue(
|
|
122
|
+
- `rejectInvalidCrudListFilterValue(invalidValues)`
|
|
83
123
|
- `normalizeCrudListDateRangeQueryValue(value)`
|
|
84
124
|
- `normalizeCrudListNumberRangeQueryValue(value)`
|
|
85
125
|
- `parseCrudListFilterMultiQueryValue(value, normalizeEntry, { invalidValues })`
|
|
86
|
-
- `
|
|
87
|
-
- `normalizeCrudListFilterOption(rawOption = null, { context = "filter option" } = {})`
|
|
88
|
-
- `normalizeCrudListFilterOptions(rawOptions = [], { context = "filter options" } = {})`
|
|
89
|
-
- `normalizeCrudListFilterPresenceOptions(rawOptions = [])`
|
|
90
|
-
- `normalizeCrudListFilterLookup(rawLookup = null)`
|
|
91
|
-
- `resolveCrudListFilterOptionSet(rawDefinition = {}, type = "")`
|
|
92
|
-
- `normalizeCrudListFilterDefinition(rawKey = "", rawDefinition = null)`
|
|
126
|
+
- `atomicValueText(value)`
|
|
93
127
|
|
|
94
128
|
### `src/shared/crudLookup.js`
|
|
95
129
|
Exports
|
|
96
130
|
- `DEFAULT_CRUD_LOOKUP_CONTAINER_KEY`
|
|
131
|
+
- `expandCrudLookupFields(schema)`
|
|
97
132
|
- `normalizeCrudLookupApiPath(value = "")`
|
|
98
133
|
- `normalizeCrudLookupNamespace(value = "")`
|
|
99
134
|
- `resolveCrudLookupApiPathFromNamespace(value = "")`
|
|
@@ -104,10 +139,11 @@ Exports
|
|
|
104
139
|
- `resolveCrudLookupFieldKeys(resource = {}, { allowKeys = [] } = {})`
|
|
105
140
|
- `resolveCrudParentFilterKeys(resource = {})`
|
|
106
141
|
- `resolveCrudLookupFieldKeyFromRouteParam(resource = {}, routeParamKey = "", { allowKeys = [] } = {})`
|
|
107
|
-
- `resolveCrudParentFilterFieldKeyFromRouteParam(resource = {}, routeParamKey = "")`
|
|
108
142
|
Local functions
|
|
143
|
+
- `usesCrudLookupShorthand(fieldDefinition)`
|
|
144
|
+
- `expandCrudLookupField(fieldKey, fieldDefinition)`
|
|
109
145
|
- `resolveCrudLookupFieldEntries(resource = {}, { allowKeys = [] } = {})`
|
|
110
|
-
- `resolveCrudLookupCreateSchemaKeys(resource
|
|
146
|
+
- `resolveCrudLookupCreateSchemaKeys(resource)`
|
|
111
147
|
|
|
112
148
|
### `src/shared/crudNamespaceSupport.js`
|
|
113
149
|
Exports
|
|
@@ -119,25 +155,27 @@ Exports
|
|
|
119
155
|
Exports
|
|
120
156
|
- `defineCrudResource(resource = {})`
|
|
121
157
|
Local functions
|
|
122
|
-
- `
|
|
123
|
-
- `resolveConfiguredLookupContainerKey(resource
|
|
124
|
-
- `resolveFieldEntries(resource
|
|
125
|
-
- `
|
|
126
|
-
- `
|
|
127
|
-
- `
|
|
158
|
+
- `buildCrudRecordIdFieldDefinition()`
|
|
159
|
+
- `resolveConfiguredLookupContainerKey(resource)`
|
|
160
|
+
- `resolveFieldEntries(resource, operationName = "output")`
|
|
161
|
+
- `buildDerivedCrudRecordOutputDefinition(resource = {})`
|
|
162
|
+
- `buildDerivedCrudBodyDefinition(resource = {}, operationName = "patch", bodyMode = "patch")`
|
|
163
|
+
- `buildCrudDeleteOutputDefinition()`
|
|
128
164
|
- `requireCrudOperationName(value = "", { context = "crud operation name" } = {})`
|
|
129
165
|
- `requireCrudOperationSpec(operationName = "")`
|
|
130
166
|
- `resolveCrudOperationNames(resource = {})`
|
|
131
167
|
- `resolveFirstPresentValue(source = {}, keys = [])`
|
|
132
168
|
- `resolveExplicitCrudSchemaDefinition(crudConfig = {}, keys = [], { context = "defineCrudResource schema definition", defaultMode = "patch" } = {})`
|
|
133
|
-
- `
|
|
169
|
+
- `buildCrudListOutputDefinition(resolveRecordOutputDefinition, crudConfig = {})`
|
|
134
170
|
- `createCrudRecordOutputDefinitionResolver(resource = {}, crudConfig = {})`
|
|
135
171
|
- `resolveCrudBodyDefinition(spec, resource = {}, crudConfig = {})`
|
|
136
172
|
- `resolveCrudOutputDefinition(spec, resolveRecordOutputDefinition, crudConfig = {})`
|
|
137
|
-
- `
|
|
138
|
-
- `
|
|
173
|
+
- `buildCrudOperationDefinition(operationName, { namespace = "", resource = {}, crudConfig = {}, resolveRecordOutputDefinition } = {})`
|
|
174
|
+
- `buildDefaultCrudOperations(resource = {})`
|
|
139
175
|
- `mergeCrudOperationDefinition(baseDefinition, overrideDefinition)`
|
|
140
176
|
- `mergeCrudOperations(defaultOperations = {}, overrides = {})`
|
|
177
|
+
- `requireCrudLockVersionField(resource)`
|
|
178
|
+
- `withExpandedCrudLookups(resource)`
|
|
141
179
|
|
|
142
180
|
### patterns
|
|
143
181
|
|
|
@@ -14,16 +14,6 @@ Use this on demand; do not load the full index at startup.
|
|
|
14
14
|
|
|
15
15
|
### src
|
|
16
16
|
|
|
17
|
-
### `src/server/actions.js`
|
|
18
|
-
Exports
|
|
19
|
-
- `ACTION_CURRENT`
|
|
20
|
-
- `ACTION_START`
|
|
21
|
-
- `ACTION_GRANT`
|
|
22
|
-
- `ACTION_CLOSE`
|
|
23
|
-
- `createRewardedActions({ rewarded } = {})`
|
|
24
|
-
Local functions
|
|
25
|
-
- `changedEvent({ entity, operation, entityId, event })`
|
|
26
|
-
|
|
27
17
|
### `src/server/inputSchemas.js`
|
|
28
18
|
Exports
|
|
29
19
|
- `currentQueryInputValidator`
|
|
@@ -35,15 +25,19 @@ Exports
|
|
|
35
25
|
- `grantRewardOutputValidator`
|
|
36
26
|
- `closeSessionOutputValidator`
|
|
37
27
|
Local functions
|
|
38
|
-
- `
|
|
28
|
+
- `buildGateStateOutputValidator({ includeSession = false } = {})`
|
|
39
29
|
|
|
40
|
-
### `src/server/
|
|
30
|
+
### `src/server/rewardedActions.js`
|
|
41
31
|
Exports
|
|
42
|
-
- `
|
|
32
|
+
- `ACTION_CURRENT`
|
|
33
|
+
- `ACTION_START`
|
|
34
|
+
- `ACTION_GRANT`
|
|
35
|
+
- `ACTION_CLOSE`
|
|
36
|
+
- `createRewardedActions({ rewarded })`
|
|
43
37
|
Local functions
|
|
44
|
-
- `
|
|
38
|
+
- `changedEvent({ entity, operation, entityId, event })`
|
|
45
39
|
|
|
46
|
-
### `src/server/
|
|
40
|
+
### `src/server/RewardedCoreFeature.js`
|
|
47
41
|
Exports
|
|
48
42
|
- `RewardedCoreFeature`
|
|
49
43
|
|
|
@@ -53,41 +47,54 @@ Exports
|
|
|
53
47
|
- `RewardedRulesFeature`
|
|
54
48
|
- `RewardedUnlockReceiptsFeature`
|
|
55
49
|
- `RewardedWatchSessionsFeature`
|
|
50
|
+
|
|
51
|
+
### `src/server/rewardedRoutes.js`
|
|
52
|
+
Exports
|
|
53
|
+
- `registerRewardedRoutes(router)`
|
|
56
54
|
Local functions
|
|
57
|
-
- `
|
|
55
|
+
- `buildWorkflowResponses(outputValidator)`
|
|
58
56
|
|
|
59
57
|
### `src/server/service.js`
|
|
60
58
|
Exports
|
|
61
|
-
- `createService({
|
|
59
|
+
- `createService({ grantPolicy, rewardedRulesRepository, rewardedProviderConfigsRepository, rewardedWatchSessionsRepository, rewardedUnlockReceiptsRepository })`
|
|
60
|
+
- `type CrudRepository`
|
|
61
|
+
- `type RewardedRepositoryOptions`
|
|
62
62
|
Local functions
|
|
63
|
-
- `
|
|
64
|
-
- `
|
|
65
|
-
- `
|
|
66
|
-
- `
|
|
67
|
-
- `
|
|
68
|
-
- `toIsoOrNull(value = null)`
|
|
69
|
-
- `parseDate(value = null)`
|
|
63
|
+
- `normalizeRecordList(document)`
|
|
64
|
+
- `normalizeRecord(document)`
|
|
65
|
+
- `normalizeKeyword(value, fallback)`
|
|
66
|
+
- `toIsoOrNull(value)`
|
|
67
|
+
- `parseDate(value)`
|
|
70
68
|
- `addMinutes(date, minutes)`
|
|
71
69
|
- `startOfUtcDay(date)`
|
|
72
70
|
- `requireActor(context, input)`
|
|
73
|
-
- `requireWorkspaceSlug(input
|
|
74
|
-
- `requireGateKey(input
|
|
75
|
-
- `formatRule(rule
|
|
76
|
-
- `formatProviderConfig(record
|
|
77
|
-
- `formatWatchSession(record
|
|
78
|
-
- `formatUnlockReceipt(record
|
|
79
|
-
- `isFutureDate(value
|
|
71
|
+
- `requireWorkspaceSlug(input)`
|
|
72
|
+
- `requireGateKey(input)`
|
|
73
|
+
- `formatRule(rule)`
|
|
74
|
+
- `formatProviderConfig(record)`
|
|
75
|
+
- `formatWatchSession(record)`
|
|
76
|
+
- `formatUnlockReceipt(record)`
|
|
77
|
+
- `isFutureDate(value, now)`
|
|
80
78
|
|
|
81
79
|
### `src/server/support/requireRewardedUnlock.js`
|
|
82
80
|
Exports
|
|
83
81
|
- `requireRewardedUnlock(rewardedService, input = {}, { context = null, requireConfigured = false, errorCode = "", errorMessage = "" } = {})`
|
|
84
82
|
Local functions
|
|
85
|
-
- `normalizeReason(value
|
|
86
|
-
- `isUnlockSatisfied(gateState
|
|
83
|
+
- `normalizeReason(value)`
|
|
84
|
+
- `isUnlockSatisfied(gateState)`
|
|
87
85
|
- `hasBooleanGateFlag(gateState, key)`
|
|
88
|
-
- `assertWellFormedGateState(gateState
|
|
89
|
-
- `isConfigurationBypassAllowed(gateState
|
|
90
|
-
- `
|
|
86
|
+
- `assertWellFormedGateState(gateState)`
|
|
87
|
+
- `isConfigurationBypassAllowed(gateState, requireConfigured)`
|
|
88
|
+
- `buildRewardedGateError(gateState, { errorCode, errorMessage })`
|
|
89
|
+
|
|
90
|
+
### `src/server/types.js`
|
|
91
|
+
Exports
|
|
92
|
+
- `type RewardedCore`
|
|
93
|
+
- `type RewardedProviderConfigs`
|
|
94
|
+
- `type RewardedRules`
|
|
95
|
+
- `type RewardedUnlockReceipts`
|
|
96
|
+
- `type RewardedWatchSessions`
|
|
97
|
+
- `type RewardedGrantPolicy`
|
|
91
98
|
|
|
92
99
|
### `src/shared/index.js`
|
|
93
100
|
Exports
|
|
@@ -114,6 +121,10 @@ Exports
|
|
|
114
121
|
|
|
115
122
|
### migrations
|
|
116
123
|
|
|
124
|
+
### `migrations/constraints/rewarded_foreign_keys.cjs`
|
|
125
|
+
Exports
|
|
126
|
+
- None
|
|
127
|
+
|
|
117
128
|
### `migrations/rewarded_provider_configs_initial.cjs`
|
|
118
129
|
Exports
|
|
119
130
|
- None
|