@wordrhyme/plugin 0.1.0-alpha.5

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 (52) hide show
  1. package/dist/admin/index.d.ts +19 -0
  2. package/dist/admin/index.js +42 -0
  3. package/dist/admin/index.js.map +1 -0
  4. package/dist/artifact.d.ts +17 -0
  5. package/dist/artifact.js +96 -0
  6. package/dist/artifact.js.map +1 -0
  7. package/dist/chunk-46KUIGB6.js +230 -0
  8. package/dist/chunk-46KUIGB6.js.map +1 -0
  9. package/dist/chunk-6GDCFR67.js +218 -0
  10. package/dist/chunk-6GDCFR67.js.map +1 -0
  11. package/dist/chunk-DY44Q4CK.js +188 -0
  12. package/dist/chunk-DY44Q4CK.js.map +1 -0
  13. package/dist/chunk-MZOLSLJ7.js +65 -0
  14. package/dist/chunk-MZOLSLJ7.js.map +1 -0
  15. package/dist/chunk-QNCOGISF.js +694 -0
  16. package/dist/chunk-QNCOGISF.js.map +1 -0
  17. package/dist/chunk-UGMYO6AU.js +37 -0
  18. package/dist/chunk-UGMYO6AU.js.map +1 -0
  19. package/dist/chunk-YQDKOEUI.js +242 -0
  20. package/dist/chunk-YQDKOEUI.js.map +1 -0
  21. package/dist/chunk-ZUBFLOKU.js +153 -0
  22. package/dist/chunk-ZUBFLOKU.js.map +1 -0
  23. package/dist/client-WXWbuuvd.d.ts +100 -0
  24. package/dist/client.d.ts +3 -0
  25. package/dist/client.js +29 -0
  26. package/dist/client.js.map +1 -0
  27. package/dist/dev-utils.d.ts +68 -0
  28. package/dist/dev-utils.js +21 -0
  29. package/dist/dev-utils.js.map +1 -0
  30. package/dist/entity-extensions-B5BbZH-m.d.ts +56 -0
  31. package/dist/globalization.d.ts +80 -0
  32. package/dist/globalization.js +43 -0
  33. package/dist/globalization.js.map +1 -0
  34. package/dist/index.d.ts +316 -0
  35. package/dist/index.js +354 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/manifest-CPSCN_Ft.d.ts +1471 -0
  38. package/dist/react.d.ts +145 -0
  39. package/dist/react.js +94 -0
  40. package/dist/react.js.map +1 -0
  41. package/dist/release-CyapqJ3z.d.ts +230 -0
  42. package/dist/server.d.ts +114 -0
  43. package/dist/server.js +194 -0
  44. package/dist/server.js.map +1 -0
  45. package/dist/time.d.ts +34 -0
  46. package/dist/time.js +31 -0
  47. package/dist/time.js.map +1 -0
  48. package/dist/trpc.d.ts +43 -0
  49. package/dist/trpc.js +11 -0
  50. package/dist/trpc.js.map +1 -0
  51. package/dist/types-8P7XyoyQ.d.ts +1599 -0
  52. package/package.json +83 -0
@@ -0,0 +1,316 @@
1
+ import { a as PluginContext, c as PluginLogger } from './types-8P7XyoyQ.js';
2
+ export { A as ApiPayload, E as EAuthModel, d as EAuthProvider, e as EAuthRefreshInput, f as EAuthRefreshResult, g as EAuthStatus, h as EAuthTokenResult, i as EAuthUpsertInput, j as EAuthUse, k as HookAbortError, H as HookContext, l as HookEmitOptions, b as HookHandlerOptions, m as HookPriority, n as HookTransaction, M as MARKETPLACE_PUBLISH_AUTH_METHODS, o as MarketplaceAttestationTargetV1, p as MarketplaceExecutionErrorCode, q as MarketplaceExecutionFailureCode, r as MarketplaceOrganizationExecutionV1, s as MarketplacePlatformReadAction, t as MarketplacePublishActor, u as MarketplacePublishAuthMethod, v as MarketplacePublisherAction, w as MarketplaceRegistrySigningCapability, O as OpaquePublisherCandidateV1, x as PluginApisCapability, y as PluginArtifactCapability, z as PluginAssetCapability, B as PluginAssetCreateOptions, C as PluginAssetInfo, D as PluginAssetQuery, F as PluginAssetUpdateData, G as PluginAssetVariant, I as PluginCurrencyCapability, J as PluginEAuthCapability, K as PluginEntityExtensionCapability, L as PluginEntityExtensionFilter, N as PluginFileCapability, Q as PluginFileInfo, R as PluginFileQuery, S as PluginFileUploadInput, T as PluginHookCapability, U as PluginJobOptions, V as PluginJobStatus, W as PluginMediaCapability, P as PluginMediaInfo, X as PluginMediaQuery, Y as PluginMediaUpdateData, Z as PluginMediaUploadInput, _ as PluginMediaVariant, $ as PluginMetricsAllowedLabels, a0 as PluginMetricsCapability, a1 as PluginNotificationActor, a2 as PluginNotificationCapability, a3 as PluginNotificationChannel, a4 as PluginNotificationEvent, a5 as PluginNotificationInput, a6 as PluginNotificationResult, a7 as PluginNotificationSendParams, a8 as PluginNotificationSendResult, a9 as PluginNotificationTarget, aa as PluginNotificationTemplate, ab as PluginOrganizationProvisioningCapability, ac as PluginPaginatedResult, ad as PluginPermissionCapability, ae as PluginPermissionCheckContext, af as PluginPermissionDef, ag as PluginQueueCapability, ah as PluginScopedDb, ai as PluginSettingEntry, aj as PluginSettingOptions, ak as PluginSettingsCapability, al as PluginStorageCapability, am as PluginStorageProvider, an as PluginStorageProviderConfig, ao as PluginStorageProviderInfo, ap as PluginStorageUploadInput, aq as PluginStorageUploadResult, ar as PluginTraceCapability, as as PluginUsageCapability, at as PluginWebCapability, au as ReadonlyPluginScopedDb, av as WebPluginHead, aw as WebPluginHeadLink, ax as WebPluginRouteHandler, ay as WebPluginRouteRequest, az as WebPluginRouteResult, aA as WebPluginSiteInfo, aB as WebPluginTenantInfo, aC as WebSlotExtensionQuery, aD as WebSlotQueryResult, aE as WebSlotRemoteExtension, aF as WebSlotRenderOptions, aG as WebSlotRenderRequest, aH as WebSlotRenderResult, aI as WebSlotRenderer } from './types-8P7XyoyQ.js';
3
+ import { z } from 'zod';
4
+ export { CurrencyInfo, DEFAULT_CURRENCY, FormatPriceOptions, GlobalizationState, I18nTextField, LanguageInfo, PriceFormatter, TextDirection, TranslationMessages, Translator, bankersRound, buildGlobalizationUrl, convertCurrency, createPriceFormatter, createTranslator, findCurrency, formatCurrencyAmount, formatPrice, fromCents, getBaseCurrency, getI18nText, getTextDirection, normalizeCurrencies, normalizeCurrencyInfo, resolveCurrencyInfo, toCents, withGlobalizationHelpers } from './globalization.js';
5
+ export { CLIENT_TIME_ZONE_COOKIE, CLIENT_TIME_ZONE_HEADER, DEFAULT_TIME_ZONE, DateFilterInput, DateFilterRange, DateRangeResolver, FormatDateTimeOptions, canonicalizeTimeZone, formatDateTime, getClientTimeZone, getSupportedTimeZones, isValidTimeZone, normalizeTimeZone, resolveDateFilterRange, toDateTimeLocal, toUtcDateTime, toUtcDayRange } from './time.js';
6
+ import { P as PluginManifest } from './manifest-CPSCN_Ft.js';
7
+ export { A as AdminTour, b as AdminTourPlacement, c as AdminTourStep, d as AggregationStrategy, e as AutoCrudAction, f as AutoCrudActionZone, g as AutoCrudActions, h as EntityExtension, i as EntityExtensionCrudConfig, a as EntityExtensionField, E as EntityExtensionFieldType, j as EntityExtensionSlot, k as EntityExtensionUse, l as PluginCapabilities, m as PluginNotificationType, n as PluginStatus, W as WebDesignAction, o as WebDesignBlock, p as WebDesignDataSource, q as WebDesignSlot, r as WebDesignSurface, s as WebDesignTemplate, t as WebExtension, u as WebExtensionQuery, v as WebExtensionTarget, w as WebPluginRoute, x as WebSsrContractVersion, y as WebSurface, z as adminExtensionSchema, B as adminTourPlacementSchema, C as adminTourSchema, D as adminTourStepSchema, F as autoCrudActionSchema, G as autoCrudActionZoneSchema, H as autoCrudActionsSchema, I as autoCrudDataSourceSchema, J as autoCrudFieldConfigSchema, K as autoCrudFieldOptionSchema, L as dashboardTargetSchema, M as entityExtensionCrudConfigSchema, N as entityExtensionFieldSchema, O as entityExtensionSchema, Q as entityExtensionSlotSchema, R as entityExtensionUseSchema, S as navGroupTargetSchema, T as navTargetSchema, U as pluginI18nSchema, V as pluginManifestSchema, X as pluginUsesSchema, Y as routeTargetSchema, Z as settingsTargetSchema, _ as targetSchema, $ as webDesignActionSchema, a0 as webDesignBlockSchema, a1 as webDesignDataSourceSchema, a2 as webDesignSlotSchema, a3 as webDesignSurfaceSchema, a4 as webDesignTemplateSchema, a5 as webExtensionQuerySchema, a6 as webExtensionSchema, a7 as webExtensionTargetSchema, a8 as webPluginRouteSchema, a9 as webSsrContractVersionSchema, aa as webSurfaceSchema } from './manifest-CPSCN_Ft.js';
8
+ export { c as PLUGIN_ARCHIVE_MEDIA_TYPE, d as PLUGIN_RELEASE_SCHEMA_VERSION, e as PluginRegistryCatalog, f as PluginRegistryRelease, P as PluginRelease, g as PluginReleaseFile, h as PluginSignature, i as REGISTRY_CATALOG_SIGNATURE_DOMAIN, b as RegistryCatalogPageEnvelope, R as RegistryReleaseEnvelope, a as RegistrySignature, j as canonicalRegistryCatalogPageEnvelope, k as canonicalRegistryReleaseEnvelope, p as pluginArchivePathSchema, l as pluginRegistryCatalogSchema, m as pluginRegistryReleaseSchema, n as pluginReleaseFileSchema, o as pluginReleaseSchema, q as pluginSignatureSchema, r as registryCatalogPageEnvelopeSchema, s as registryCatalogPageSignaturePayload, t as registryCatalogReleasesPayload, u as registryReleaseEnvelopeSchema, v as registryReleaseSignaturePayload, w as registrySignatureSchema } from './release-CyapqJ3z.js';
9
+ export { E as ENTITY_EXTENSION_VALUES_SAVE_HOOK_ID, a as EXTENSION_PROJECT_SAVE_HOOK_ID, b as EntityExtensionProjectionValue, c as EntityExtensionValueSaveHandler, d as EntityExtensionValueSavePayload, e as EntityExtensionValueSaveResult, f as entityExtensions, r as registerEntityExtensionValueSaver } from './entity-extensions-B5BbZH-m.js';
10
+ export { getPluginDevPort, getPluginDevRemoteEntry, getPluginMfName } from './dev-utils.js';
11
+ export { D as DashboardTarget, E as ExtensionComponentMap, G as GenericTarget, N as NavGroupTarget, a as NavTarget, R as RouteTarget, S as SettingsTarget, b as SlotContext, T as Target, c as ToolbarHandlerMap, U as UIExtensionDef, d as dashboardExtension, e as defineExtension, m as multiSlotExtension, n as navExtension, r as routeExtension, s as settingsExtension } from './client-WXWbuuvd.js';
12
+ import 'decimal.js';
13
+
14
+ declare const MARKETPLACE_PUBLISH_SOURCES: readonly ["web", "cli", "github-actions"];
15
+ declare const marketplacePublishSourceSchema: z.ZodEnum<{
16
+ web: "web";
17
+ cli: "cli";
18
+ "github-actions": "github-actions";
19
+ }>;
20
+ type MarketplacePublishSource = z.infer<typeof marketplacePublishSourceSchema>;
21
+ declare const MARKETPLACE_SUBMISSION_STATUSES: readonly ["uploaded", "scanning", "review_pending", "scan_failed", "approved", "rejected"];
22
+ declare const marketplaceSubmissionStatusSchema: z.ZodEnum<{
23
+ uploaded: "uploaded";
24
+ scanning: "scanning";
25
+ review_pending: "review_pending";
26
+ scan_failed: "scan_failed";
27
+ approved: "approved";
28
+ rejected: "rejected";
29
+ }>;
30
+ type MarketplaceSubmissionStatus = z.infer<typeof marketplaceSubmissionStatusSchema>;
31
+ declare const marketplacePublisherProfileInputSchema: z.ZodObject<{
32
+ name: z.ZodString;
33
+ }, z.core.$strip>;
34
+ type MarketplacePublisherProfileInput = z.infer<typeof marketplacePublisherProfileInputSchema>;
35
+ declare const marketplacePublisherProfileSchema: z.ZodObject<{
36
+ id: z.ZodString;
37
+ organizationId: z.ZodString;
38
+ name: z.ZodString;
39
+ trust: z.ZodEnum<{
40
+ first_party: "first_party";
41
+ third_party: "third_party";
42
+ }>;
43
+ status: z.ZodEnum<{
44
+ suspended: "suspended";
45
+ active: "active";
46
+ }>;
47
+ createdAt: z.ZodISODateTime;
48
+ updatedAt: z.ZodISODateTime;
49
+ }, z.core.$strip>;
50
+ type MarketplacePublisherProfile = z.infer<typeof marketplacePublisherProfileSchema>;
51
+ declare const marketplacePublisherProfileResponseSchema: z.ZodObject<{
52
+ profile: z.ZodNullable<z.ZodObject<{
53
+ id: z.ZodString;
54
+ organizationId: z.ZodString;
55
+ name: z.ZodString;
56
+ trust: z.ZodEnum<{
57
+ first_party: "first_party";
58
+ third_party: "third_party";
59
+ }>;
60
+ status: z.ZodEnum<{
61
+ suspended: "suspended";
62
+ active: "active";
63
+ }>;
64
+ createdAt: z.ZodISODateTime;
65
+ updatedAt: z.ZodISODateTime;
66
+ }, z.core.$strip>>;
67
+ }, z.core.$strip>;
68
+ type MarketplacePublisherProfileResponse = z.infer<typeof marketplacePublisherProfileResponseSchema>;
69
+ declare const marketplaceOwnedPluginInputSchema: z.ZodObject<{
70
+ pluginId: z.ZodString;
71
+ }, z.core.$strip>;
72
+ type MarketplaceOwnedPluginInput = z.infer<typeof marketplaceOwnedPluginInputSchema>;
73
+ declare const marketplaceOwnedPluginSchema: z.ZodObject<{
74
+ pluginId: z.ZodString;
75
+ publisherId: z.ZodString;
76
+ createdAt: z.ZodISODateTime;
77
+ updatedAt: z.ZodISODateTime;
78
+ }, z.core.$strip>;
79
+ type MarketplaceOwnedPlugin = z.infer<typeof marketplaceOwnedPluginSchema>;
80
+ declare const marketplaceOwnedPluginsResponseSchema: z.ZodObject<{
81
+ items: z.ZodArray<z.ZodObject<{
82
+ pluginId: z.ZodString;
83
+ publisherId: z.ZodString;
84
+ createdAt: z.ZodISODateTime;
85
+ updatedAt: z.ZodISODateTime;
86
+ }, z.core.$strip>>;
87
+ }, z.core.$strip>;
88
+ type MarketplaceOwnedPluginsResponse = z.infer<typeof marketplaceOwnedPluginsResponseSchema>;
89
+ declare const marketplaceOwnedPluginResponseSchema: z.ZodObject<{
90
+ plugin: z.ZodObject<{
91
+ pluginId: z.ZodString;
92
+ publisherId: z.ZodString;
93
+ createdAt: z.ZodISODateTime;
94
+ updatedAt: z.ZodISODateTime;
95
+ }, z.core.$strip>;
96
+ }, z.core.$strip>;
97
+ type MarketplaceOwnedPluginResponse = z.infer<typeof marketplaceOwnedPluginResponseSchema>;
98
+ declare const marketplaceSubmissionSchema: z.ZodObject<{
99
+ id: z.ZodString;
100
+ publisherId: z.ZodString;
101
+ organizationId: z.ZodString;
102
+ pluginId: z.ZodString;
103
+ version: z.ZodString;
104
+ status: z.ZodEnum<{
105
+ uploaded: "uploaded";
106
+ scanning: "scanning";
107
+ review_pending: "review_pending";
108
+ scan_failed: "scan_failed";
109
+ approved: "approved";
110
+ rejected: "rejected";
111
+ }>;
112
+ uploadSource: z.ZodEnum<{
113
+ web: "web";
114
+ cli: "cli";
115
+ "github-actions": "github-actions";
116
+ }>;
117
+ uploadActorId: z.ZodNullable<z.ZodString>;
118
+ uploadAuthMethod: z.ZodNullable<z.ZodEnum<{
119
+ "portal-session": "portal-session";
120
+ "scoped-api-key": "scoped-api-key";
121
+ }>>;
122
+ uploadCredentialId: z.ZodNullable<z.ZodString>;
123
+ uploadAuthenticatedAt: z.ZodNullable<z.ZodISODateTime>;
124
+ reviewReason: z.ZodNullable<z.ZodString>;
125
+ reviewedAt: z.ZodNullable<z.ZodISODateTime>;
126
+ createdAt: z.ZodISODateTime;
127
+ updatedAt: z.ZodISODateTime;
128
+ }, z.core.$strip>;
129
+ type MarketplaceSubmission = z.infer<typeof marketplaceSubmissionSchema>;
130
+ declare const marketplaceSubmissionCursorSchema: z.ZodObject<{
131
+ cursor: z.ZodOptional<z.ZodString>;
132
+ pluginId: z.ZodOptional<z.ZodString>;
133
+ }, z.core.$strip>;
134
+ type MarketplaceSubmissionCursor = z.infer<typeof marketplaceSubmissionCursorSchema>;
135
+ declare const marketplaceSubmissionsResponseSchema: z.ZodObject<{
136
+ items: z.ZodArray<z.ZodObject<{
137
+ id: z.ZodString;
138
+ publisherId: z.ZodString;
139
+ organizationId: z.ZodString;
140
+ pluginId: z.ZodString;
141
+ version: z.ZodString;
142
+ status: z.ZodEnum<{
143
+ uploaded: "uploaded";
144
+ scanning: "scanning";
145
+ review_pending: "review_pending";
146
+ scan_failed: "scan_failed";
147
+ approved: "approved";
148
+ rejected: "rejected";
149
+ }>;
150
+ uploadSource: z.ZodEnum<{
151
+ web: "web";
152
+ cli: "cli";
153
+ "github-actions": "github-actions";
154
+ }>;
155
+ uploadActorId: z.ZodNullable<z.ZodString>;
156
+ uploadAuthMethod: z.ZodNullable<z.ZodEnum<{
157
+ "portal-session": "portal-session";
158
+ "scoped-api-key": "scoped-api-key";
159
+ }>>;
160
+ uploadCredentialId: z.ZodNullable<z.ZodString>;
161
+ uploadAuthenticatedAt: z.ZodNullable<z.ZodISODateTime>;
162
+ reviewReason: z.ZodNullable<z.ZodString>;
163
+ reviewedAt: z.ZodNullable<z.ZodISODateTime>;
164
+ createdAt: z.ZodISODateTime;
165
+ updatedAt: z.ZodISODateTime;
166
+ }, z.core.$strip>>;
167
+ nextCursor: z.ZodNullable<z.ZodString>;
168
+ }, z.core.$strip>;
169
+ type MarketplaceSubmissionsResponse = z.infer<typeof marketplaceSubmissionsResponseSchema>;
170
+ declare const marketplaceReleaseAcceptedResponseSchema: z.ZodObject<{
171
+ submission: z.ZodObject<{
172
+ id: z.ZodString;
173
+ publisherId: z.ZodString;
174
+ organizationId: z.ZodString;
175
+ pluginId: z.ZodString;
176
+ version: z.ZodString;
177
+ status: z.ZodEnum<{
178
+ uploaded: "uploaded";
179
+ scanning: "scanning";
180
+ review_pending: "review_pending";
181
+ scan_failed: "scan_failed";
182
+ approved: "approved";
183
+ rejected: "rejected";
184
+ }>;
185
+ uploadSource: z.ZodEnum<{
186
+ web: "web";
187
+ cli: "cli";
188
+ "github-actions": "github-actions";
189
+ }>;
190
+ uploadActorId: z.ZodNullable<z.ZodString>;
191
+ uploadAuthMethod: z.ZodNullable<z.ZodEnum<{
192
+ "portal-session": "portal-session";
193
+ "scoped-api-key": "scoped-api-key";
194
+ }>>;
195
+ uploadCredentialId: z.ZodNullable<z.ZodString>;
196
+ uploadAuthenticatedAt: z.ZodNullable<z.ZodISODateTime>;
197
+ reviewReason: z.ZodNullable<z.ZodString>;
198
+ reviewedAt: z.ZodNullable<z.ZodISODateTime>;
199
+ createdAt: z.ZodISODateTime;
200
+ updatedAt: z.ZodISODateTime;
201
+ }, z.core.$strip>;
202
+ }, z.core.$strip>;
203
+ type MarketplaceReleaseAcceptedResponse = z.infer<typeof marketplaceReleaseAcceptedResponseSchema>;
204
+ declare const marketplacePublisherErrorSchema: z.ZodObject<{
205
+ error: z.ZodString;
206
+ }, z.core.$strip>;
207
+ type MarketplacePublisherError = z.infer<typeof marketplacePublisherErrorSchema>;
208
+
209
+ /**
210
+ * Plugin Definition - Type-safe plugin configuration
211
+ */
212
+ interface PluginDefinition {
213
+ /** Plugin manifest (required fields only) */
214
+ manifest: Pick<PluginManifest, 'pluginId' | 'version' | 'name' | 'vendor' | 'engines'> & Partial<PluginManifest>;
215
+ /** Server-side exports */
216
+ server?: {
217
+ /** tRPC router (optional) */
218
+ router?: unknown;
219
+ /** Lifecycle hooks */
220
+ onInstall?: (ctx: PluginContext) => Promise<void>;
221
+ onEnable?: (ctx: PluginContext) => Promise<void>;
222
+ onDisable?: (ctx: PluginContext) => Promise<void>;
223
+ onUninstall?: (ctx: PluginContext) => Promise<void>;
224
+ };
225
+ }
226
+ /**
227
+ * Define a plugin with type safety
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * import { definePlugin } from '@wordrhyme/plugin';
232
+ *
233
+ * export default definePlugin({
234
+ * manifest: {
235
+ * pluginId: 'com.example.hello',
236
+ * version: '1.0.0',
237
+ * name: 'Hello World',
238
+ * vendor: 'Example Inc',
239
+ * engines: { wordrhyme: '^0.1.0' },
240
+ * },
241
+ * server: {
242
+ * router: myRouter,
243
+ * onEnable: async (ctx) => {
244
+ * ctx.logger.info('Plugin enabled!');
245
+ * },
246
+ * },
247
+ * });
248
+ * ```
249
+ */
250
+ declare function definePlugin(definition: PluginDefinition): PluginDefinition;
251
+
252
+ /**
253
+ * Plugin Runtime Helpers (Client-Side)
254
+ *
255
+ * Utilities for plugins to use logger and permission capabilities.
256
+ * These are convenience wrappers that work within plugin context.
257
+ */
258
+
259
+ /**
260
+ * Create a scoped logger for a plugin
261
+ *
262
+ * @example
263
+ * ```ts
264
+ * import { createLogger } from '@wordrhyme/plugin';
265
+ *
266
+ * const logger = createLogger('com.vendor.my-plugin');
267
+ * logger.info('Plugin started');
268
+ * ```
269
+ */
270
+ declare function createLogger(pluginId: string): PluginLogger;
271
+ /**
272
+ * Check if a permission is granted in the context
273
+ *
274
+ * @example
275
+ * ```ts
276
+ * import { checkPermission } from '@wordrhyme/plugin';
277
+ *
278
+ * async function myHandler(ctx: PluginContext) {
279
+ * if (await checkPermission(ctx, 'content:read:*')) {
280
+ * // User has permission
281
+ * }
282
+ * }
283
+ * ```
284
+ */
285
+ declare function checkPermission(ctx: PluginContext, capability: string): Promise<boolean>;
286
+ /**
287
+ * Require a permission - throws if denied
288
+ *
289
+ * @example
290
+ * ```ts
291
+ * import { requirePermission } from '@wordrhyme/plugin';
292
+ *
293
+ * async function protectedHandler(ctx: PluginContext) {
294
+ * await requirePermission(ctx, 'admin:manage:*');
295
+ * // Only executes if permission granted
296
+ * }
297
+ * ```
298
+ */
299
+ declare function requirePermission(ctx: PluginContext, capability: string): Promise<void>;
300
+ /**
301
+ * Check if plugin declared a capability in its manifest
302
+ *
303
+ * @example
304
+ * ```ts
305
+ * import { hasCapability } from '@wordrhyme/plugin';
306
+ *
307
+ * function checkDeclared(ctx: PluginContext) {
308
+ * if (hasCapability(ctx, 'content:write:*')) {
309
+ * // Plugin declared this capability
310
+ * }
311
+ * }
312
+ * ```
313
+ */
314
+ declare function hasCapability(ctx: PluginContext, capability: string): boolean;
315
+
316
+ export { MARKETPLACE_PUBLISH_SOURCES, MARKETPLACE_SUBMISSION_STATUSES, type MarketplaceOwnedPlugin, type MarketplaceOwnedPluginInput, type MarketplaceOwnedPluginResponse, type MarketplaceOwnedPluginsResponse, type MarketplacePublishSource, type MarketplacePublisherError, type MarketplacePublisherProfile, type MarketplacePublisherProfileInput, type MarketplacePublisherProfileResponse, type MarketplaceReleaseAcceptedResponse, type MarketplaceSubmission, type MarketplaceSubmissionCursor, type MarketplaceSubmissionStatus, type MarketplaceSubmissionsResponse, PluginContext, PluginLogger, PluginManifest, checkPermission, createLogger, definePlugin, hasCapability, marketplaceOwnedPluginInputSchema, marketplaceOwnedPluginResponseSchema, marketplaceOwnedPluginSchema, marketplaceOwnedPluginsResponseSchema, marketplacePublishSourceSchema, marketplacePublisherErrorSchema, marketplacePublisherProfileInputSchema, marketplacePublisherProfileResponseSchema, marketplacePublisherProfileSchema, marketplaceReleaseAcceptedResponseSchema, marketplaceSubmissionCursorSchema, marketplaceSubmissionSchema, marketplaceSubmissionStatusSchema, marketplaceSubmissionsResponseSchema, requirePermission };
package/dist/index.js ADDED
@@ -0,0 +1,354 @@
1
+ import {
2
+ PLUGIN_ARCHIVE_MEDIA_TYPE,
3
+ PLUGIN_RELEASE_SCHEMA_VERSION,
4
+ REGISTRY_CATALOG_SIGNATURE_DOMAIN,
5
+ canonicalRegistryCatalogPageEnvelope,
6
+ canonicalRegistryReleaseEnvelope,
7
+ pluginArchivePathSchema,
8
+ pluginRegistryCatalogSchema,
9
+ pluginRegistryReleaseSchema,
10
+ pluginReleaseFileSchema,
11
+ pluginReleaseSchema,
12
+ pluginSignatureSchema,
13
+ registryCatalogPageEnvelopeSchema,
14
+ registryCatalogPageSignaturePayload,
15
+ registryCatalogReleasesPayload,
16
+ registryReleaseEnvelopeSchema,
17
+ registryReleaseSignaturePayload,
18
+ registrySignatureSchema
19
+ } from "./chunk-DY44Q4CK.js";
20
+ import {
21
+ dashboardExtension,
22
+ defineExtension,
23
+ multiSlotExtension,
24
+ navExtension,
25
+ routeExtension,
26
+ settingsExtension
27
+ } from "./chunk-MZOLSLJ7.js";
28
+ import {
29
+ adminExtensionSchema,
30
+ adminTourPlacementSchema,
31
+ adminTourSchema,
32
+ adminTourStepSchema,
33
+ autoCrudActionSchema,
34
+ autoCrudActionZoneSchema,
35
+ autoCrudActionsSchema,
36
+ autoCrudDataSourceSchema,
37
+ autoCrudFieldConfigSchema,
38
+ autoCrudFieldOptionSchema,
39
+ dashboardTargetSchema,
40
+ entityExtensionCrudConfigSchema,
41
+ entityExtensionFieldSchema,
42
+ entityExtensionSchema,
43
+ entityExtensionSlotSchema,
44
+ entityExtensionUseSchema,
45
+ navGroupTargetSchema,
46
+ navTargetSchema,
47
+ pluginI18nSchema,
48
+ pluginManifestSchema,
49
+ pluginUsesSchema,
50
+ routeTargetSchema,
51
+ settingsTargetSchema,
52
+ targetSchema,
53
+ webDesignActionSchema,
54
+ webDesignBlockSchema,
55
+ webDesignDataSourceSchema,
56
+ webDesignSlotSchema,
57
+ webDesignSurfaceSchema,
58
+ webDesignTemplateSchema,
59
+ webExtensionQuerySchema,
60
+ webExtensionSchema,
61
+ webExtensionTargetSchema,
62
+ webPluginRouteSchema,
63
+ webSsrContractVersionSchema,
64
+ webSurfaceSchema
65
+ } from "./chunk-QNCOGISF.js";
66
+ import {
67
+ getPluginDevPort,
68
+ getPluginDevRemoteEntry,
69
+ getPluginMfName
70
+ } from "./chunk-YQDKOEUI.js";
71
+ import {
72
+ DEFAULT_CURRENCY,
73
+ bankersRound,
74
+ buildGlobalizationUrl,
75
+ convertCurrency,
76
+ createPriceFormatter,
77
+ createTranslator,
78
+ findCurrency,
79
+ formatCurrencyAmount,
80
+ formatPrice,
81
+ fromCents,
82
+ getBaseCurrency,
83
+ getI18nText,
84
+ getTextDirection,
85
+ normalizeCurrencies,
86
+ normalizeCurrencyInfo,
87
+ resolveCurrencyInfo,
88
+ toCents,
89
+ withGlobalizationHelpers
90
+ } from "./chunk-46KUIGB6.js";
91
+ import {
92
+ ENTITY_EXTENSION_VALUES_SAVE_HOOK_ID,
93
+ EXTENSION_PROJECT_SAVE_HOOK_ID,
94
+ entityExtensions,
95
+ registerEntityExtensionValueSaver
96
+ } from "./chunk-UGMYO6AU.js";
97
+ import {
98
+ CLIENT_TIME_ZONE_COOKIE,
99
+ CLIENT_TIME_ZONE_HEADER,
100
+ DEFAULT_TIME_ZONE,
101
+ canonicalizeTimeZone,
102
+ formatDateTime,
103
+ getClientTimeZone,
104
+ getSupportedTimeZones,
105
+ isValidTimeZone,
106
+ normalizeTimeZone,
107
+ resolveDateFilterRange,
108
+ toDateTimeLocal,
109
+ toUtcDateTime,
110
+ toUtcDayRange
111
+ } from "./chunk-6GDCFR67.js";
112
+
113
+ // src/types.ts
114
+ var MARKETPLACE_PUBLISH_AUTH_METHODS = [
115
+ "portal-session",
116
+ "scoped-api-key"
117
+ ];
118
+ var HookPriority = /* @__PURE__ */ ((HookPriority2) => {
119
+ HookPriority2[HookPriority2["EARLIEST"] = 0] = "EARLIEST";
120
+ HookPriority2[HookPriority2["EARLY"] = 25] = "EARLY";
121
+ HookPriority2[HookPriority2["NORMAL"] = 50] = "NORMAL";
122
+ HookPriority2[HookPriority2["LATE"] = 75] = "LATE";
123
+ HookPriority2[HookPriority2["LATEST"] = 100] = "LATEST";
124
+ return HookPriority2;
125
+ })(HookPriority || {});
126
+ var HookAbortError = class extends Error {
127
+ constructor(message) {
128
+ super(message);
129
+ this.name = "HookAbortError";
130
+ }
131
+ };
132
+
133
+ // src/marketplace-publisher-contract.ts
134
+ import { z } from "zod";
135
+ var MARKETPLACE_PUBLISH_SOURCES = ["web", "cli", "github-actions"];
136
+ var marketplacePublishSourceSchema = z.enum(MARKETPLACE_PUBLISH_SOURCES);
137
+ var MARKETPLACE_SUBMISSION_STATUSES = [
138
+ "uploaded",
139
+ "scanning",
140
+ "review_pending",
141
+ "scan_failed",
142
+ "approved",
143
+ "rejected"
144
+ ];
145
+ var marketplaceSubmissionStatusSchema = z.enum(MARKETPLACE_SUBMISSION_STATUSES);
146
+ var marketplacePublisherProfileInputSchema = z.object({
147
+ name: z.string().trim().min(1).max(160)
148
+ });
149
+ var marketplacePublisherProfileSchema = z.object({
150
+ id: z.string().uuid(),
151
+ organizationId: z.string().min(1),
152
+ name: z.string().min(1).max(160),
153
+ trust: z.enum(["first_party", "third_party"]),
154
+ status: z.enum(["active", "suspended"]),
155
+ createdAt: z.iso.datetime({ offset: true }),
156
+ updatedAt: z.iso.datetime({ offset: true })
157
+ });
158
+ var marketplacePublisherProfileResponseSchema = z.object({
159
+ profile: marketplacePublisherProfileSchema.nullable()
160
+ });
161
+ var marketplaceOwnedPluginInputSchema = z.object({
162
+ pluginId: pluginManifestSchema.shape.pluginId
163
+ });
164
+ var marketplaceOwnedPluginSchema = z.object({
165
+ pluginId: pluginManifestSchema.shape.pluginId,
166
+ publisherId: z.string().uuid(),
167
+ createdAt: z.iso.datetime({ offset: true }),
168
+ updatedAt: z.iso.datetime({ offset: true })
169
+ });
170
+ var marketplaceOwnedPluginsResponseSchema = z.object({
171
+ items: z.array(marketplaceOwnedPluginSchema)
172
+ });
173
+ var marketplaceOwnedPluginResponseSchema = z.object({
174
+ plugin: marketplaceOwnedPluginSchema
175
+ });
176
+ var marketplaceSubmissionSchema = z.object({
177
+ id: z.string().uuid(),
178
+ publisherId: z.string().uuid(),
179
+ organizationId: z.string().min(1),
180
+ pluginId: pluginManifestSchema.shape.pluginId,
181
+ version: z.string().min(1).max(80),
182
+ status: marketplaceSubmissionStatusSchema,
183
+ uploadSource: marketplacePublishSourceSchema,
184
+ uploadActorId: z.string().nullable(),
185
+ uploadAuthMethod: z.enum(["portal-session", "scoped-api-key"]).nullable(),
186
+ uploadCredentialId: z.string().nullable(),
187
+ uploadAuthenticatedAt: z.iso.datetime({ offset: true }).nullable(),
188
+ reviewReason: z.string().nullable(),
189
+ reviewedAt: z.iso.datetime({ offset: true }).nullable(),
190
+ createdAt: z.iso.datetime({ offset: true }),
191
+ updatedAt: z.iso.datetime({ offset: true })
192
+ });
193
+ var marketplaceSubmissionCursorSchema = z.object({
194
+ cursor: z.string().min(1).optional(),
195
+ pluginId: pluginManifestSchema.shape.pluginId.optional()
196
+ });
197
+ var marketplaceSubmissionsResponseSchema = z.object({
198
+ items: z.array(marketplaceSubmissionSchema),
199
+ nextCursor: z.string().nullable()
200
+ });
201
+ var marketplaceReleaseAcceptedResponseSchema = z.object({
202
+ submission: marketplaceSubmissionSchema
203
+ });
204
+ var marketplacePublisherErrorSchema = z.object({
205
+ error: z.string().min(1)
206
+ });
207
+
208
+ // src/define-plugin.ts
209
+ function definePlugin(definition) {
210
+ return definition;
211
+ }
212
+
213
+ // src/helpers.ts
214
+ function createLogger(pluginId) {
215
+ return {
216
+ info: (msg, meta) => console.log(`[${pluginId}]`, msg, meta ?? ""),
217
+ warn: (msg, meta) => console.warn(`[${pluginId}]`, msg, meta ?? ""),
218
+ error: (msg, meta) => console.error(`[${pluginId}]`, msg, meta ?? ""),
219
+ debug: (msg, meta) => console.debug(`[${pluginId}]`, msg, meta ?? "")
220
+ };
221
+ }
222
+ async function checkPermission(ctx, capability) {
223
+ return ctx.permissions.can(capability);
224
+ }
225
+ async function requirePermission(ctx, capability) {
226
+ return ctx.permissions.require(capability);
227
+ }
228
+ function hasCapability(ctx, capability) {
229
+ return ctx.permissions.hasDeclared(capability);
230
+ }
231
+ export {
232
+ CLIENT_TIME_ZONE_COOKIE,
233
+ CLIENT_TIME_ZONE_HEADER,
234
+ DEFAULT_CURRENCY,
235
+ DEFAULT_TIME_ZONE,
236
+ ENTITY_EXTENSION_VALUES_SAVE_HOOK_ID,
237
+ EXTENSION_PROJECT_SAVE_HOOK_ID,
238
+ HookAbortError,
239
+ HookPriority,
240
+ MARKETPLACE_PUBLISH_AUTH_METHODS,
241
+ MARKETPLACE_PUBLISH_SOURCES,
242
+ MARKETPLACE_SUBMISSION_STATUSES,
243
+ PLUGIN_ARCHIVE_MEDIA_TYPE,
244
+ PLUGIN_RELEASE_SCHEMA_VERSION,
245
+ REGISTRY_CATALOG_SIGNATURE_DOMAIN,
246
+ adminExtensionSchema,
247
+ adminTourPlacementSchema,
248
+ adminTourSchema,
249
+ adminTourStepSchema,
250
+ autoCrudActionSchema,
251
+ autoCrudActionZoneSchema,
252
+ autoCrudActionsSchema,
253
+ autoCrudDataSourceSchema,
254
+ autoCrudFieldConfigSchema,
255
+ autoCrudFieldOptionSchema,
256
+ bankersRound,
257
+ buildGlobalizationUrl,
258
+ canonicalRegistryCatalogPageEnvelope,
259
+ canonicalRegistryReleaseEnvelope,
260
+ canonicalizeTimeZone,
261
+ checkPermission,
262
+ convertCurrency,
263
+ createLogger,
264
+ createPriceFormatter,
265
+ createTranslator,
266
+ dashboardExtension,
267
+ dashboardTargetSchema,
268
+ defineExtension,
269
+ definePlugin,
270
+ entityExtensionCrudConfigSchema,
271
+ entityExtensionFieldSchema,
272
+ entityExtensionSchema,
273
+ entityExtensionSlotSchema,
274
+ entityExtensionUseSchema,
275
+ entityExtensions,
276
+ findCurrency,
277
+ formatCurrencyAmount,
278
+ formatDateTime,
279
+ formatPrice,
280
+ fromCents,
281
+ getBaseCurrency,
282
+ getClientTimeZone,
283
+ getI18nText,
284
+ getPluginDevPort,
285
+ getPluginDevRemoteEntry,
286
+ getPluginMfName,
287
+ getSupportedTimeZones,
288
+ getTextDirection,
289
+ hasCapability,
290
+ isValidTimeZone,
291
+ marketplaceOwnedPluginInputSchema,
292
+ marketplaceOwnedPluginResponseSchema,
293
+ marketplaceOwnedPluginSchema,
294
+ marketplaceOwnedPluginsResponseSchema,
295
+ marketplacePublishSourceSchema,
296
+ marketplacePublisherErrorSchema,
297
+ marketplacePublisherProfileInputSchema,
298
+ marketplacePublisherProfileResponseSchema,
299
+ marketplacePublisherProfileSchema,
300
+ marketplaceReleaseAcceptedResponseSchema,
301
+ marketplaceSubmissionCursorSchema,
302
+ marketplaceSubmissionSchema,
303
+ marketplaceSubmissionStatusSchema,
304
+ marketplaceSubmissionsResponseSchema,
305
+ multiSlotExtension,
306
+ navExtension,
307
+ navGroupTargetSchema,
308
+ navTargetSchema,
309
+ normalizeCurrencies,
310
+ normalizeCurrencyInfo,
311
+ normalizeTimeZone,
312
+ pluginArchivePathSchema,
313
+ pluginI18nSchema,
314
+ pluginManifestSchema,
315
+ pluginRegistryCatalogSchema,
316
+ pluginRegistryReleaseSchema,
317
+ pluginReleaseFileSchema,
318
+ pluginReleaseSchema,
319
+ pluginSignatureSchema,
320
+ pluginUsesSchema,
321
+ registerEntityExtensionValueSaver,
322
+ registryCatalogPageEnvelopeSchema,
323
+ registryCatalogPageSignaturePayload,
324
+ registryCatalogReleasesPayload,
325
+ registryReleaseEnvelopeSchema,
326
+ registryReleaseSignaturePayload,
327
+ registrySignatureSchema,
328
+ requirePermission,
329
+ resolveCurrencyInfo,
330
+ resolveDateFilterRange,
331
+ routeExtension,
332
+ routeTargetSchema,
333
+ settingsExtension,
334
+ settingsTargetSchema,
335
+ targetSchema,
336
+ toCents,
337
+ toDateTimeLocal,
338
+ toUtcDateTime,
339
+ toUtcDayRange,
340
+ webDesignActionSchema,
341
+ webDesignBlockSchema,
342
+ webDesignDataSourceSchema,
343
+ webDesignSlotSchema,
344
+ webDesignSurfaceSchema,
345
+ webDesignTemplateSchema,
346
+ webExtensionQuerySchema,
347
+ webExtensionSchema,
348
+ webExtensionTargetSchema,
349
+ webPluginRouteSchema,
350
+ webSsrContractVersionSchema,
351
+ webSurfaceSchema,
352
+ withGlobalizationHelpers
353
+ };
354
+ //# sourceMappingURL=index.js.map