@standards/client 1.0.0-alpha.409 → 1.0.0-alpha.411
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.mts +2 -2
- package/dist/app.d.ts +2 -2
- package/dist/app.js +1 -1
- package/dist/app.mjs +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.mjs +1 -1
- package/package.json +2 -2
package/dist/app.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { _ as StandardsRequestError, a as OperationStreamOptions, c as UploadProgress, d as readRefusal, f as refusalOf, h as StandardsAuthError, i as OperationCallOptions, l as createHttpTransport, n as HttpTransportConfig, t as HttpTransport } from "./http-transport-C1u5UGkC.mjs";
|
|
3
3
|
import { DraftConflictChange } from "@standards/schema";
|
|
4
|
-
import { Operation, OperationInput, OperationResult, actorsOperations, agentAccessOperations, agentApprovalsOperations, agentDefinitionsOperations, agentEnvVarsOperations, agentMemoryOperations, agentMessagesOperations, agentRolesOperations, agentRunsOperations, agentSessionAccessOperations, agentSessionsOperations, agentTriggersOperations, aiOperations, apiKeysOperations, artifactsOperations, auditOperations, browserProfilesOperations, bundlesOperations, cloudBrowsersOperations, connectedAppsOperations, connectorsOperations, decisionsOperations, deviceAccessOperations, deviceEnrollmentTokensOperations, devicesOperations, dictationOperations, documentsOperations, emailCategoriesOperations, emailClassificationOperations, emailsOperations, embeddingsAdminOperations, envVarsOperations, environmentEnvVarsOperations, environmentsOperations, filesOperations, foldersOperations, formsOperations, geocodingOperations, logosOperations, mailDraftsOperations, mailSignaturesOperations, mcpServersOperations, meetingsAdminOperations, meetingsOperations, memoryAdminOperations, modelsOperations, newsOperations, pageAccessOperations, pagesOperations, permissionsOperations, privateEnvVarsOperations, quotasOperations, recentActivityOperations, recordAccessOperations, recordMemoryOperations, recordOperationsOperations, recordsOperations, relationsOperations, schemaDraftOperations, schemaGroupsOperations, schemaObjectsOperations, schemaStateOperations, screensOperations, searchAdminOperations, searchOperations, tenantInvitationsOperations, tenantSettingsOperations, usersOperations, viewsOperations, workspaceLoginsOperations } from "@standards/schema/api";
|
|
4
|
+
import { Operation, OperationInput, OperationResult, actorsOperations, agentAccessOperations, agentApprovalsOperations, agentDefinitionsOperations, agentEnvVarsOperations, agentMemoryOperations, agentMessagesOperations, agentRolesOperations, agentRunsOperations, agentSessionAccessOperations, agentSessionsOperations, agentTriggersOperations, aiOperations, apiKeysOperations, artifactsOperations, auditOperations, browserProfilesOperations, bundlesOperations, cloudBrowsersOperations, connectedAppsOperations, connectorsOperations, decisionsOperations, deviceAccessOperations, deviceEnrollmentTokensOperations, devicesOperations, dictationOperations, documentsOperations, emailCategoriesOperations, emailClassificationOperations, emailsOperations, embeddingsAdminOperations, envVarsOperations, environmentEnvVarsOperations, environmentsOperations, filesOperations, foldersOperations, formsOperations, geocodingOperations, logosOperations, mailDraftsOperations, mailSignaturesOperations, mcpServersOperations, meetingsAdminOperations, meetingsOperations, memoryAdminOperations, modelsOperations, newsOperations, pageAccessOperations, pagesOperations, permissionsOperations, privateEnvVarsOperations, proactiveOperations, quotasOperations, recentActivityOperations, recordAccessOperations, recordMemoryOperations, recordOperationsOperations, recordsOperations, relationsOperations, schemaDraftOperations, schemaGroupsOperations, schemaObjectsOperations, schemaStateOperations, screensOperations, searchAdminOperations, searchOperations, skillsOperations, tenantInvitationsOperations, tenantSettingsOperations, usersOperations, viewsOperations, workspaceLoginsOperations } from "@standards/schema/api";
|
|
5
5
|
//#region src/app-errors.d.ts
|
|
6
6
|
/** The server's `SchemaErrorCode` on a failed call, when it sent one. */
|
|
7
7
|
export declare function schemaApiErrorCode(error: unknown): string | undefined;
|
|
@@ -58,7 +58,7 @@ export declare function parseContentDispositionFilename(header: string | null |
|
|
|
58
58
|
//#endregion
|
|
59
59
|
//#region src/app.d.ts
|
|
60
60
|
type GroupOperation<G> = G[keyof G];
|
|
61
|
-
type AppOperation = GroupOperation<typeof apiKeysOperations> | GroupOperation<typeof meetingsOperations> | GroupOperation<typeof quotasOperations> | GroupOperation<typeof aiOperations> | GroupOperation<typeof modelsOperations> | GroupOperation<typeof agentMemoryOperations> | GroupOperation<typeof recordMemoryOperations> | GroupOperation<typeof schemaGroupsOperations> | GroupOperation<typeof artifactsOperations> | GroupOperation<typeof envVarsOperations> | GroupOperation<typeof privateEnvVarsOperations> | GroupOperation<typeof workspaceLoginsOperations> | GroupOperation<typeof tenantSettingsOperations> | GroupOperation<typeof tenantInvitationsOperations> | GroupOperation<typeof decisionsOperations> | GroupOperation<typeof bundlesOperations> | GroupOperation<typeof auditOperations> | GroupOperation<typeof geocodingOperations> | GroupOperation<typeof logosOperations> | GroupOperation<typeof actorsOperations> | GroupOperation<typeof usersOperations> | GroupOperation<typeof permissionsOperations> | GroupOperation<typeof agentAccessOperations> | GroupOperation<typeof pageAccessOperations> | GroupOperation<typeof agentSessionAccessOperations> | GroupOperation<typeof browserProfilesOperations> | GroupOperation<typeof cloudBrowsersOperations> | GroupOperation<typeof environmentEnvVarsOperations> | GroupOperation<typeof environmentsOperations> | GroupOperation<typeof mcpServersOperations> | GroupOperation<typeof connectorsOperations> | GroupOperation<typeof emailCategoriesOperations> | GroupOperation<typeof emailClassificationOperations> | GroupOperation<typeof emailsOperations> | GroupOperation<typeof mailDraftsOperations> | GroupOperation<typeof mailSignaturesOperations> | GroupOperation<typeof pagesOperations> | GroupOperation<typeof screensOperations> | GroupOperation<typeof viewsOperations> | GroupOperation<typeof formsOperations> | GroupOperation<typeof relationsOperations> | GroupOperation<typeof searchOperations> | GroupOperation<typeof recentActivityOperations> | GroupOperation<typeof recordOperationsOperations> | GroupOperation<typeof recordsOperations> | GroupOperation<typeof recordAccessOperations> | GroupOperation<typeof newsOperations> | GroupOperation<typeof meetingsAdminOperations> | GroupOperation<typeof embeddingsAdminOperations> | GroupOperation<typeof memoryAdminOperations> | GroupOperation<typeof searchAdminOperations> | GroupOperation<typeof schemaStateOperations> | GroupOperation<typeof schemaObjectsOperations> | GroupOperation<typeof schemaDraftOperations> | GroupOperation<typeof filesOperations> | GroupOperation<typeof documentsOperations> | GroupOperation<typeof foldersOperations> | GroupOperation<typeof agentDefinitionsOperations> | GroupOperation<typeof agentRolesOperations> | GroupOperation<typeof agentEnvVarsOperations> | GroupOperation<typeof agentRunsOperations> | GroupOperation<typeof agentTriggersOperations> | GroupOperation<typeof agentSessionsOperations> | GroupOperation<typeof agentMessagesOperations> | GroupOperation<typeof agentApprovalsOperations> | GroupOperation<typeof devicesOperations> | GroupOperation<typeof deviceAccessOperations> | GroupOperation<typeof deviceEnrollmentTokensOperations> | GroupOperation<typeof connectedAppsOperations> | GroupOperation<typeof dictationOperations>;
|
|
61
|
+
type AppOperation = GroupOperation<typeof apiKeysOperations> | GroupOperation<typeof meetingsOperations> | GroupOperation<typeof quotasOperations> | GroupOperation<typeof aiOperations> | GroupOperation<typeof modelsOperations> | GroupOperation<typeof agentMemoryOperations> | GroupOperation<typeof recordMemoryOperations> | GroupOperation<typeof schemaGroupsOperations> | GroupOperation<typeof artifactsOperations> | GroupOperation<typeof envVarsOperations> | GroupOperation<typeof privateEnvVarsOperations> | GroupOperation<typeof workspaceLoginsOperations> | GroupOperation<typeof tenantSettingsOperations> | GroupOperation<typeof proactiveOperations> | GroupOperation<typeof tenantInvitationsOperations> | GroupOperation<typeof decisionsOperations> | GroupOperation<typeof bundlesOperations> | GroupOperation<typeof auditOperations> | GroupOperation<typeof geocodingOperations> | GroupOperation<typeof logosOperations> | GroupOperation<typeof actorsOperations> | GroupOperation<typeof usersOperations> | GroupOperation<typeof permissionsOperations> | GroupOperation<typeof agentAccessOperations> | GroupOperation<typeof pageAccessOperations> | GroupOperation<typeof agentSessionAccessOperations> | GroupOperation<typeof browserProfilesOperations> | GroupOperation<typeof cloudBrowsersOperations> | GroupOperation<typeof environmentEnvVarsOperations> | GroupOperation<typeof environmentsOperations> | GroupOperation<typeof mcpServersOperations> | GroupOperation<typeof connectorsOperations> | GroupOperation<typeof emailCategoriesOperations> | GroupOperation<typeof emailClassificationOperations> | GroupOperation<typeof emailsOperations> | GroupOperation<typeof mailDraftsOperations> | GroupOperation<typeof mailSignaturesOperations> | GroupOperation<typeof pagesOperations> | GroupOperation<typeof screensOperations> | GroupOperation<typeof viewsOperations> | GroupOperation<typeof formsOperations> | GroupOperation<typeof relationsOperations> | GroupOperation<typeof searchOperations> | GroupOperation<typeof skillsOperations> | GroupOperation<typeof recentActivityOperations> | GroupOperation<typeof recordOperationsOperations> | GroupOperation<typeof recordsOperations> | GroupOperation<typeof recordAccessOperations> | GroupOperation<typeof newsOperations> | GroupOperation<typeof meetingsAdminOperations> | GroupOperation<typeof embeddingsAdminOperations> | GroupOperation<typeof memoryAdminOperations> | GroupOperation<typeof searchAdminOperations> | GroupOperation<typeof schemaStateOperations> | GroupOperation<typeof schemaObjectsOperations> | GroupOperation<typeof schemaDraftOperations> | GroupOperation<typeof filesOperations> | GroupOperation<typeof documentsOperations> | GroupOperation<typeof foldersOperations> | GroupOperation<typeof agentDefinitionsOperations> | GroupOperation<typeof agentRolesOperations> | GroupOperation<typeof agentEnvVarsOperations> | GroupOperation<typeof agentRunsOperations> | GroupOperation<typeof agentTriggersOperations> | GroupOperation<typeof agentSessionsOperations> | GroupOperation<typeof agentMessagesOperations> | GroupOperation<typeof agentApprovalsOperations> | GroupOperation<typeof devicesOperations> | GroupOperation<typeof deviceAccessOperations> | GroupOperation<typeof deviceEnrollmentTokensOperations> | GroupOperation<typeof connectedAppsOperations> | GroupOperation<typeof dictationOperations>;
|
|
62
62
|
type NamespaceOf<N> = N extends `${infer G}.${string}` ? G : never;
|
|
63
63
|
type VerbOf<N> = N extends `${string}.${infer V}` ? V : never;
|
|
64
64
|
/** An `"events"` operation opens a stream (`transport.stream`); any other is one call. */
|
package/dist/app.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { _ as StandardsRequestError, a as OperationStreamOptions, c as UploadProgress, d as readRefusal, f as refusalOf, h as StandardsAuthError, i as OperationCallOptions, l as createHttpTransport, n as HttpTransportConfig, t as HttpTransport } from "./http-transport-C1u5UGkC.js";
|
|
3
|
-
import { Operation, OperationInput, OperationResult, actorsOperations, agentAccessOperations, agentApprovalsOperations, agentDefinitionsOperations, agentEnvVarsOperations, agentMemoryOperations, agentMessagesOperations, agentRolesOperations, agentRunsOperations, agentSessionAccessOperations, agentSessionsOperations, agentTriggersOperations, aiOperations, apiKeysOperations, artifactsOperations, auditOperations, browserProfilesOperations, bundlesOperations, cloudBrowsersOperations, connectedAppsOperations, connectorsOperations, decisionsOperations, deviceAccessOperations, deviceEnrollmentTokensOperations, devicesOperations, dictationOperations, documentsOperations, emailCategoriesOperations, emailClassificationOperations, emailsOperations, embeddingsAdminOperations, envVarsOperations, environmentEnvVarsOperations, environmentsOperations, filesOperations, foldersOperations, formsOperations, geocodingOperations, logosOperations, mailDraftsOperations, mailSignaturesOperations, mcpServersOperations, meetingsAdminOperations, meetingsOperations, memoryAdminOperations, modelsOperations, newsOperations, pageAccessOperations, pagesOperations, permissionsOperations, privateEnvVarsOperations, quotasOperations, recentActivityOperations, recordAccessOperations, recordMemoryOperations, recordOperationsOperations, recordsOperations, relationsOperations, schemaDraftOperations, schemaGroupsOperations, schemaObjectsOperations, schemaStateOperations, screensOperations, searchAdminOperations, searchOperations, tenantInvitationsOperations, tenantSettingsOperations, usersOperations, viewsOperations, workspaceLoginsOperations } from "@standards/schema/api";
|
|
3
|
+
import { Operation, OperationInput, OperationResult, actorsOperations, agentAccessOperations, agentApprovalsOperations, agentDefinitionsOperations, agentEnvVarsOperations, agentMemoryOperations, agentMessagesOperations, agentRolesOperations, agentRunsOperations, agentSessionAccessOperations, agentSessionsOperations, agentTriggersOperations, aiOperations, apiKeysOperations, artifactsOperations, auditOperations, browserProfilesOperations, bundlesOperations, cloudBrowsersOperations, connectedAppsOperations, connectorsOperations, decisionsOperations, deviceAccessOperations, deviceEnrollmentTokensOperations, devicesOperations, dictationOperations, documentsOperations, emailCategoriesOperations, emailClassificationOperations, emailsOperations, embeddingsAdminOperations, envVarsOperations, environmentEnvVarsOperations, environmentsOperations, filesOperations, foldersOperations, formsOperations, geocodingOperations, logosOperations, mailDraftsOperations, mailSignaturesOperations, mcpServersOperations, meetingsAdminOperations, meetingsOperations, memoryAdminOperations, modelsOperations, newsOperations, pageAccessOperations, pagesOperations, permissionsOperations, privateEnvVarsOperations, proactiveOperations, quotasOperations, recentActivityOperations, recordAccessOperations, recordMemoryOperations, recordOperationsOperations, recordsOperations, relationsOperations, schemaDraftOperations, schemaGroupsOperations, schemaObjectsOperations, schemaStateOperations, screensOperations, searchAdminOperations, searchOperations, skillsOperations, tenantInvitationsOperations, tenantSettingsOperations, usersOperations, viewsOperations, workspaceLoginsOperations } from "@standards/schema/api";
|
|
4
4
|
import { DraftConflictChange } from "@standards/schema";
|
|
5
5
|
//#region src/app-errors.d.ts
|
|
6
6
|
/** The server's `SchemaErrorCode` on a failed call, when it sent one. */
|
|
@@ -58,7 +58,7 @@ export declare function parseContentDispositionFilename(header: string | null |
|
|
|
58
58
|
//#endregion
|
|
59
59
|
//#region src/app.d.ts
|
|
60
60
|
type GroupOperation<G> = G[keyof G];
|
|
61
|
-
type AppOperation = GroupOperation<typeof apiKeysOperations> | GroupOperation<typeof meetingsOperations> | GroupOperation<typeof quotasOperations> | GroupOperation<typeof aiOperations> | GroupOperation<typeof modelsOperations> | GroupOperation<typeof agentMemoryOperations> | GroupOperation<typeof recordMemoryOperations> | GroupOperation<typeof schemaGroupsOperations> | GroupOperation<typeof artifactsOperations> | GroupOperation<typeof envVarsOperations> | GroupOperation<typeof privateEnvVarsOperations> | GroupOperation<typeof workspaceLoginsOperations> | GroupOperation<typeof tenantSettingsOperations> | GroupOperation<typeof tenantInvitationsOperations> | GroupOperation<typeof decisionsOperations> | GroupOperation<typeof bundlesOperations> | GroupOperation<typeof auditOperations> | GroupOperation<typeof geocodingOperations> | GroupOperation<typeof logosOperations> | GroupOperation<typeof actorsOperations> | GroupOperation<typeof usersOperations> | GroupOperation<typeof permissionsOperations> | GroupOperation<typeof agentAccessOperations> | GroupOperation<typeof pageAccessOperations> | GroupOperation<typeof agentSessionAccessOperations> | GroupOperation<typeof browserProfilesOperations> | GroupOperation<typeof cloudBrowsersOperations> | GroupOperation<typeof environmentEnvVarsOperations> | GroupOperation<typeof environmentsOperations> | GroupOperation<typeof mcpServersOperations> | GroupOperation<typeof connectorsOperations> | GroupOperation<typeof emailCategoriesOperations> | GroupOperation<typeof emailClassificationOperations> | GroupOperation<typeof emailsOperations> | GroupOperation<typeof mailDraftsOperations> | GroupOperation<typeof mailSignaturesOperations> | GroupOperation<typeof pagesOperations> | GroupOperation<typeof screensOperations> | GroupOperation<typeof viewsOperations> | GroupOperation<typeof formsOperations> | GroupOperation<typeof relationsOperations> | GroupOperation<typeof searchOperations> | GroupOperation<typeof recentActivityOperations> | GroupOperation<typeof recordOperationsOperations> | GroupOperation<typeof recordsOperations> | GroupOperation<typeof recordAccessOperations> | GroupOperation<typeof newsOperations> | GroupOperation<typeof meetingsAdminOperations> | GroupOperation<typeof embeddingsAdminOperations> | GroupOperation<typeof memoryAdminOperations> | GroupOperation<typeof searchAdminOperations> | GroupOperation<typeof schemaStateOperations> | GroupOperation<typeof schemaObjectsOperations> | GroupOperation<typeof schemaDraftOperations> | GroupOperation<typeof filesOperations> | GroupOperation<typeof documentsOperations> | GroupOperation<typeof foldersOperations> | GroupOperation<typeof agentDefinitionsOperations> | GroupOperation<typeof agentRolesOperations> | GroupOperation<typeof agentEnvVarsOperations> | GroupOperation<typeof agentRunsOperations> | GroupOperation<typeof agentTriggersOperations> | GroupOperation<typeof agentSessionsOperations> | GroupOperation<typeof agentMessagesOperations> | GroupOperation<typeof agentApprovalsOperations> | GroupOperation<typeof devicesOperations> | GroupOperation<typeof deviceAccessOperations> | GroupOperation<typeof deviceEnrollmentTokensOperations> | GroupOperation<typeof connectedAppsOperations> | GroupOperation<typeof dictationOperations>;
|
|
61
|
+
type AppOperation = GroupOperation<typeof apiKeysOperations> | GroupOperation<typeof meetingsOperations> | GroupOperation<typeof quotasOperations> | GroupOperation<typeof aiOperations> | GroupOperation<typeof modelsOperations> | GroupOperation<typeof agentMemoryOperations> | GroupOperation<typeof recordMemoryOperations> | GroupOperation<typeof schemaGroupsOperations> | GroupOperation<typeof artifactsOperations> | GroupOperation<typeof envVarsOperations> | GroupOperation<typeof privateEnvVarsOperations> | GroupOperation<typeof workspaceLoginsOperations> | GroupOperation<typeof tenantSettingsOperations> | GroupOperation<typeof proactiveOperations> | GroupOperation<typeof tenantInvitationsOperations> | GroupOperation<typeof decisionsOperations> | GroupOperation<typeof bundlesOperations> | GroupOperation<typeof auditOperations> | GroupOperation<typeof geocodingOperations> | GroupOperation<typeof logosOperations> | GroupOperation<typeof actorsOperations> | GroupOperation<typeof usersOperations> | GroupOperation<typeof permissionsOperations> | GroupOperation<typeof agentAccessOperations> | GroupOperation<typeof pageAccessOperations> | GroupOperation<typeof agentSessionAccessOperations> | GroupOperation<typeof browserProfilesOperations> | GroupOperation<typeof cloudBrowsersOperations> | GroupOperation<typeof environmentEnvVarsOperations> | GroupOperation<typeof environmentsOperations> | GroupOperation<typeof mcpServersOperations> | GroupOperation<typeof connectorsOperations> | GroupOperation<typeof emailCategoriesOperations> | GroupOperation<typeof emailClassificationOperations> | GroupOperation<typeof emailsOperations> | GroupOperation<typeof mailDraftsOperations> | GroupOperation<typeof mailSignaturesOperations> | GroupOperation<typeof pagesOperations> | GroupOperation<typeof screensOperations> | GroupOperation<typeof viewsOperations> | GroupOperation<typeof formsOperations> | GroupOperation<typeof relationsOperations> | GroupOperation<typeof searchOperations> | GroupOperation<typeof skillsOperations> | GroupOperation<typeof recentActivityOperations> | GroupOperation<typeof recordOperationsOperations> | GroupOperation<typeof recordsOperations> | GroupOperation<typeof recordAccessOperations> | GroupOperation<typeof newsOperations> | GroupOperation<typeof meetingsAdminOperations> | GroupOperation<typeof embeddingsAdminOperations> | GroupOperation<typeof memoryAdminOperations> | GroupOperation<typeof searchAdminOperations> | GroupOperation<typeof schemaStateOperations> | GroupOperation<typeof schemaObjectsOperations> | GroupOperation<typeof schemaDraftOperations> | GroupOperation<typeof filesOperations> | GroupOperation<typeof documentsOperations> | GroupOperation<typeof foldersOperations> | GroupOperation<typeof agentDefinitionsOperations> | GroupOperation<typeof agentRolesOperations> | GroupOperation<typeof agentEnvVarsOperations> | GroupOperation<typeof agentRunsOperations> | GroupOperation<typeof agentTriggersOperations> | GroupOperation<typeof agentSessionsOperations> | GroupOperation<typeof agentMessagesOperations> | GroupOperation<typeof agentApprovalsOperations> | GroupOperation<typeof devicesOperations> | GroupOperation<typeof deviceAccessOperations> | GroupOperation<typeof deviceEnrollmentTokensOperations> | GroupOperation<typeof connectedAppsOperations> | GroupOperation<typeof dictationOperations>;
|
|
62
62
|
type NamespaceOf<N> = N extends `${infer G}.${string}` ? G : never;
|
|
63
63
|
type VerbOf<N> = N extends `${string}.${infer V}` ? V : never;
|
|
64
64
|
/** An `"events"` operation opens a stream (`transport.stream`); any other is one call. */
|
package/dist/app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! © 2025-2026 AND YOU CREATE SAS (RCS Paris 940 190 614). Proprietary — see LICENSE (Standards SDK License 1.0). */
|
|
2
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./http-transport-CAPVZuiv.js");let t=require("@standards/schema/api");const n=[t.apiKeysOperations,t.meetingsOperations,t.quotasOperations,t.aiOperations,t.modelsOperations,t.agentMemoryOperations,t.recordMemoryOperations,t.schemaGroupsOperations,t.artifactsOperations,t.envVarsOperations,t.privateEnvVarsOperations,t.workspaceLoginsOperations,t.tenantSettingsOperations,t.tenantInvitationsOperations,t.decisionsOperations,t.bundlesOperations,t.auditOperations,t.geocodingOperations,t.logosOperations,t.actorsOperations,t.usersOperations,t.permissionsOperations,t.agentAccessOperations,t.pageAccessOperations,t.agentSessionAccessOperations,t.browserProfilesOperations,t.cloudBrowsersOperations,t.environmentEnvVarsOperations,t.environmentsOperations,t.mcpServersOperations,t.connectorsOperations,t.emailCategoriesOperations,t.emailClassificationOperations,t.emailsOperations,t.mailDraftsOperations,t.mailSignaturesOperations,t.pagesOperations,t.screensOperations,t.viewsOperations,t.formsOperations,t.relationsOperations,t.searchOperations,t.recentActivityOperations,t.recordOperationsOperations,t.recordsOperations,t.recordAccessOperations,t.newsOperations,t.meetingsAdminOperations,t.embeddingsAdminOperations,t.memoryAdminOperations,t.searchAdminOperations,t.schemaStateOperations,t.schemaObjectsOperations,t.schemaDraftOperations,t.filesOperations,t.documentsOperations,t.foldersOperations,t.agentDefinitionsOperations,t.agentRolesOperations,t.agentEnvVarsOperations,t.agentRunsOperations,t.agentTriggersOperations,t.agentSessionsOperations,t.agentMessagesOperations,t.agentApprovalsOperations,t.deviceAccessOperations,t.deviceEnrollmentTokensOperations,t.devicesOperations,t.connectedAppsOperations,t.dictationOperations];function createAppClient(e){let r={};for(let i of n.flatMap(e=>Object.values(e))){let n=(0,t.operationGroup)(i),a=i.name.slice(n.length+1);r[n]??={},r[n][a]=(t,n)=>i.response===`events`?e.stream(i,t,n):e.call(i,t,n)}return r}exports.StandardsAuthError=e.h,exports.StandardsRequestError=e._,exports.createAppClient=createAppClient,exports.createHttpTransport=e.t,exports.draftConflictChanges=e.s,exports.isDraftRevisionConflict=e.c,exports.isObjectNotFound=e.l,exports.isPermanentRefusal=e.u,exports.isViewNotFound=e.d,exports.parseContentDispositionFilename=e.o,exports.readRefusal=e.r,exports.refusalOf=e.i,exports.schemaApiErrorCode=e.f;
|
|
2
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./http-transport-CAPVZuiv.js");let t=require("@standards/schema/api");const n=[t.apiKeysOperations,t.meetingsOperations,t.quotasOperations,t.aiOperations,t.modelsOperations,t.agentMemoryOperations,t.recordMemoryOperations,t.schemaGroupsOperations,t.artifactsOperations,t.envVarsOperations,t.privateEnvVarsOperations,t.workspaceLoginsOperations,t.tenantSettingsOperations,t.proactiveOperations,t.tenantInvitationsOperations,t.decisionsOperations,t.bundlesOperations,t.auditOperations,t.geocodingOperations,t.logosOperations,t.actorsOperations,t.usersOperations,t.permissionsOperations,t.agentAccessOperations,t.pageAccessOperations,t.agentSessionAccessOperations,t.browserProfilesOperations,t.cloudBrowsersOperations,t.environmentEnvVarsOperations,t.environmentsOperations,t.mcpServersOperations,t.connectorsOperations,t.emailCategoriesOperations,t.emailClassificationOperations,t.emailsOperations,t.mailDraftsOperations,t.mailSignaturesOperations,t.pagesOperations,t.screensOperations,t.viewsOperations,t.formsOperations,t.relationsOperations,t.searchOperations,t.skillsOperations,t.recentActivityOperations,t.recordOperationsOperations,t.recordsOperations,t.recordAccessOperations,t.newsOperations,t.meetingsAdminOperations,t.embeddingsAdminOperations,t.memoryAdminOperations,t.searchAdminOperations,t.schemaStateOperations,t.schemaObjectsOperations,t.schemaDraftOperations,t.filesOperations,t.documentsOperations,t.foldersOperations,t.agentDefinitionsOperations,t.agentRolesOperations,t.agentEnvVarsOperations,t.agentRunsOperations,t.agentTriggersOperations,t.agentSessionsOperations,t.agentMessagesOperations,t.agentApprovalsOperations,t.deviceAccessOperations,t.deviceEnrollmentTokensOperations,t.devicesOperations,t.connectedAppsOperations,t.dictationOperations];function createAppClient(e){let r={};for(let i of n.flatMap(e=>Object.values(e))){let n=(0,t.operationGroup)(i),a=i.name.slice(n.length+1);r[n]??={},r[n][a]=(t,n)=>i.response===`events`?e.stream(i,t,n):e.call(i,t,n)}return r}exports.StandardsAuthError=e.h,exports.StandardsRequestError=e._,exports.createAppClient=createAppClient,exports.createHttpTransport=e.t,exports.draftConflictChanges=e.s,exports.isDraftRevisionConflict=e.c,exports.isObjectNotFound=e.l,exports.isPermanentRefusal=e.u,exports.isViewNotFound=e.d,exports.parseContentDispositionFilename=e.o,exports.readRefusal=e.r,exports.refusalOf=e.i,exports.schemaApiErrorCode=e.f;
|
package/dist/app.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! © 2025-2026 AND YOU CREATE SAS (RCS Paris 940 190 614). Proprietary — see LICENSE (Standards SDK License 1.0). */
|
|
2
|
-
import{_ as e,c as t,d as n,f as r,h as i,i as ee,l as a,o,r as s,s as c,t as l,u}from"./http-transport-BxgXm4Oi.mjs";import{actorsOperations as d,agentAccessOperations as f,agentApprovalsOperations as p,agentDefinitionsOperations as m,agentEnvVarsOperations as h,agentMemoryOperations as g,agentMessagesOperations as _,agentRolesOperations as v,agentRunsOperations as y,agentSessionAccessOperations as b,agentSessionsOperations as x,agentTriggersOperations as S,aiOperations as C,apiKeysOperations as w,artifactsOperations as T,auditOperations as E,browserProfilesOperations as D,bundlesOperations as O,cloudBrowsersOperations as k,connectedAppsOperations as A,connectorsOperations as j,decisionsOperations as M,deviceAccessOperations as N,deviceEnrollmentTokensOperations as P,devicesOperations as F,dictationOperations as I,documentsOperations as L,emailCategoriesOperations as R,emailClassificationOperations as z,emailsOperations as B,embeddingsAdminOperations as V,envVarsOperations as H,environmentEnvVarsOperations as U,environmentsOperations as W,filesOperations as
|
|
2
|
+
import{_ as e,c as t,d as n,f as r,h as i,i as ee,l as a,o,r as s,s as c,t as l,u}from"./http-transport-BxgXm4Oi.mjs";import{actorsOperations as d,agentAccessOperations as f,agentApprovalsOperations as p,agentDefinitionsOperations as m,agentEnvVarsOperations as h,agentMemoryOperations as g,agentMessagesOperations as _,agentRolesOperations as v,agentRunsOperations as y,agentSessionAccessOperations as b,agentSessionsOperations as x,agentTriggersOperations as S,aiOperations as C,apiKeysOperations as w,artifactsOperations as T,auditOperations as E,browserProfilesOperations as D,bundlesOperations as O,cloudBrowsersOperations as k,connectedAppsOperations as A,connectorsOperations as j,decisionsOperations as M,deviceAccessOperations as N,deviceEnrollmentTokensOperations as P,devicesOperations as F,dictationOperations as I,documentsOperations as L,emailCategoriesOperations as R,emailClassificationOperations as z,emailsOperations as B,embeddingsAdminOperations as V,envVarsOperations as H,environmentEnvVarsOperations as U,environmentsOperations as W,filesOperations as G,foldersOperations as K,formsOperations as q,geocodingOperations as J,logosOperations as te,mailDraftsOperations as Y,mailSignaturesOperations as X,mcpServersOperations as Z,meetingsAdminOperations as Q,meetingsOperations as ne,memoryAdminOperations as re,modelsOperations as ie,newsOperations as ae,operationGroup as oe,pageAccessOperations as se,pagesOperations as ce,permissionsOperations as le,privateEnvVarsOperations as ue,proactiveOperations as de,quotasOperations as fe,recentActivityOperations as pe,recordAccessOperations as me,recordMemoryOperations as he,recordOperationsOperations as ge,recordsOperations as _e,relationsOperations as ve,schemaDraftOperations as ye,schemaGroupsOperations as be,schemaObjectsOperations as $,schemaStateOperations as xe,screensOperations as Se,searchAdminOperations as Ce,searchOperations as we,skillsOperations as Te,tenantInvitationsOperations as Ee,tenantSettingsOperations as De,usersOperations as Oe,viewsOperations as ke,workspaceLoginsOperations as Ae}from"@standards/schema/api";const je=[w,ne,fe,C,ie,g,he,be,T,H,ue,Ae,De,de,Ee,M,O,E,J,te,d,Oe,le,f,se,b,D,k,U,W,Z,j,R,z,B,Y,X,ce,Se,ke,q,ve,we,Te,pe,ge,_e,me,ae,Q,V,re,Ce,xe,$,ye,G,L,K,m,v,h,y,S,x,_,p,N,P,F,A,I];function createAppClient(e){let t={};for(let n of je.flatMap(e=>Object.values(e))){let r=oe(n),i=n.name.slice(r.length+1);t[r]??={},t[r][i]=(t,r)=>n.response===`events`?e.stream(n,t,r):e.call(n,t,r)}return t}export{i as StandardsAuthError,e as StandardsRequestError,createAppClient,l as createHttpTransport,c as draftConflictChanges,t as isDraftRevisionConflict,a as isObjectNotFound,u as isPermanentRefusal,n as isViewNotFound,o as parseContentDispositionFilename,s as readRefusal,ee as refusalOf,r as schemaApiErrorCode};
|
package/dist/testing.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! © 2025-2026 AND YOU CREATE SAS (RCS Paris 940 190 614). Proprietary — see LICENSE (Standards SDK License 1.0). */
|
|
2
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./http-transport-CAPVZuiv.js"),t=require("./create-standards-CjO1pFmM.js");let n=require("@standards/schema"),r=require("@standards/schema/api");var UnsupportedFilterOperatorError=class extends Error{constructor(e,t){super(`The in-memory test workspace does not serve the "${e}" operator (on "${t}"). Test it against a real workspace.`),this.name=`UnsupportedFilterOperatorError`,this.operator=e}};const i=new Set([`id`,`createdAt`,`updatedAt`]),a=new Set([`createdAt`,`updatedAt`]),o=new Set([`number`,`currency`]),s=new Set([`select`,`status`]),c=/^\d{4}-\d{2}-\d{2}/;function attributeValue(e,t){if(i.has(t))return e[t];let n=e.values[t];return typeof n==`object`&&n&&`value`in n&&!Array.isArray(n)?n.value:n}function isEmptyValue(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function textOf(e){return e==null?null:e instanceof Date?e.toISOString():typeof e==`string`?e:JSON.stringify(e)}function members(e){return Array.isArray(e)?e.map(String):null}function dayOf(e){let t=textOf(e);if(t===null||!c.test(t))return null;let n=t.slice(0,10);return Number.isNaN(Date.parse(`${n}T00:00:00.000Z`))?null:n}function nextDay(e){let t=new Date(`${e}T00:00:00.000Z`);return t.setUTCDate(t.getUTCDate()+1),t.toISOString().slice(0,10)}function isUnmodelledDate(e){if(e?.type!==`date`)return!1;let t=e;return t.endDate===!0||t.includeTime===!0}function matchesDay(e,t,n,r){let i=dayOf(n);if(i===null)return!1;let a=textOf(t),o=nextDay(i),s=r?textOf(n)??i:i;switch(e){case`is`:return a!==null&&a>=s&&a<o;case`is_not`:return a===null||a<s||a>=o;case`greater_than`:return a!==null&&a>=o;case`greater_or_equal`:return a!==null&&a>=s;case`less_than`:return a!==null&&a<s;default:return a!==null&&a<o}}function compare(e,t,n){let r=textOf(e),i=textOf(t);if(r===null||i===null)return null;if(n){let e=Number(r),t=Number(i);return r===``||Number.isNaN(e)||Number.isNaN(t)?null:e-t}return r<i?-1:+(r>i)}function matchesRule(e,t,n){let r=n.attributes.find(e=>e.name===t.attribute)?.type,i=attributeValue(e,t.attribute),s=r!==void 0&&o.has(r),c=textOf(t.value)?.toLowerCase(),l=textOf(i)?.toLowerCase()??null;if((r===`date`||a.has(t.attribute))&&[`is`,`is_not`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`].includes(t.operator))return matchesDay(t.operator,i,t.value,a.has(t.attribute));switch(t.operator){case`is`:return r===`checkbox`||r===void 0&&typeof t.value==`boolean`?t.value===!0?i===!0:i!==!0:textOf(i)!==null&&textOf(i)===textOf(t.value);case`is_not`:return textOf(i)===null||textOf(i)!==textOf(t.value);case`contains`:return Array.isArray(i)?(Array.isArray(t.value)?t.value.map(String):[String(t.value)]).every(e=>i.map(String).includes(e)):l!==null&&c!==void 0&&l.includes(c);case`not_contains`:return i==null||!matchesRule(e,{...t,operator:`contains`},n);case`starts_with`:return l!==null&&c!==void 0&&l.startsWith(c);case`ends_with`:return l!==null&&c!==void 0&&l.endsWith(c);case`greater_than`:case`greater_or_equal`:case`less_than`:case`less_or_equal`:{let e=compare(i,t.value,s);return e===null?!1:t.operator===`greater_than`?e>0:t.operator===`greater_or_equal`?e>=0:t.operator===`less_than`?e<0:e<=0}case`is_empty`:return isEmptyValue(i);case`is_not_empty`:return!isEmptyValue(i);case`any_of`:{let e=members(t.value);return e===null||e.length===0||i==null?!1:Array.isArray(i)?i.some(t=>e.includes(String(t))):e.includes(textOf(i)??``)}case`none_of`:{let e=members(t.value);return e===null?!1:e.length===0||i==null?!0:Array.isArray(i)?!i.some(t=>e.includes(String(t))):!e.includes(textOf(i)??``)}default:throw new UnsupportedFilterOperatorError(t.operator,t.attribute)}}const l=new Set([`is`,`is_not`,`contains`,`not_contains`,`starts_with`,`ends_with`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`,`is_empty`,`is_not_empty`,`any_of`,`none_of`]);function assertServedOperators(e,t){for(let n of e?.rules??[])if(!l.has(n.operator)||isUnmodelledDate(t.attributes.find(e=>e.name===n.attribute))&&n.operator!==`is_empty`&&n.operator!==`is_not_empty`)throw new UnsupportedFilterOperatorError(n.operator,n.attribute)}function matchesFilters(e,t,n){let r=t?.rules??[];if(r.length===0)return!0;let i=r.map(t=>matchesRule(e,t,n));return t?.combinator===`or`?i.some(Boolean):i.every(Boolean)}function matchesSearch(e,t){let n=t.trim().toLowerCase();return n===``||Object.values(e.values).some(e=>(Array.isArray(e)?e:[e]).some(e=>typeof e==`string`&&e.toLowerCase().includes(n)))}function sortKey(e,t,n){let r=attributeValue(e,t),i=n.attributes.find(e=>e.name===t);if(i&&s.has(i.type)){let e=(i.options??[]).findIndex(e=>e.value===r);return{position:e===-1?null:e,value:r}}return r}function isOptionKey(e){return typeof e==`object`&&!!e&&`position`in e}function compareOptionKeys(e,t,n){let r=n===`desc`?-1:1;return e.position!==null&&t.position!==null?r*(e.position-t.position):e.position!==null||t.position!==null?e.position===null?1:-1:r*(compare(e.value,t.value,!1)??0)}function compareRecords(e,t){let n=e&&e.length>0?[...e]:[{attribute:`createdAt`,direction:`desc`}];return n.some(e=>e.attribute===`id`)||n.push({attribute:`id`,direction:`asc`}),(e,r)=>{for(let i of n){let n=t.attributes.find(e=>e.name===i.attribute)?.type,a=sortKey(e,i.attribute,t),s=sortKey(r,i.attribute,t),c=isOptionKey(a)?a.value:a,l=isOptionKey(s)?s.value:s,u=textOf(c)===null,d=textOf(l)===null;if(u||d){if(u&&d)continue;return u?1:-1}if(isOptionKey(a)&&isOptionKey(s)){let e=compareOptionKeys(a,s,i.direction);if(e!==0)return e;continue}let f=compare(a,s,n!==void 0&&o.has(n))??0;if(f!==0)return i.direction===`desc`?-f:f}return 0}}const u=`SCHEMA_RECORD_NOT_FOUND`,d=`SCHEMA_VALIDATION_FAILED`,readNotFound=e=>`Record "${e}" not found.`,writeNotFound=e=>`Record with id "${e}" not found`,f=[`id`,`createdAt`,`updatedAt`];function withSystemAttributes(e){return{...e,attributes:[...e.attributes,...(0,n.getSystemAttributeList)()]}}function withoutSystemKeys(e){let t={...e};for(let e of f)delete t[e];return t}function boundOf(t,n,r){if(t==null)return r;if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0)throw new e._(400,`${n} must be a non-negative integer`);return t}function isObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function errorFor(t,n,r){return t===401||t===403?new e.h(t,n,r):new e._(t,n,r)}function asTheServerValidates(t){try{t()}catch(t){throw t instanceof n.ValidationError?new e._(400,t.message,t.code):t}}function notServed(t,n){return new e._(501,`The in-memory test workspace does not serve ${t} ${n}: only the records API is in memory.`)}function isoOf(e,t){return e===void 0?t:e instanceof Date?e.toISOString():new Date(e).toISOString()}function wire(e){return JSON.parse(JSON.stringify(e))}function createInMemoryApi(i){let a=new Map;for(let e of i.builders){let n=t.a(e);a.set(n.name,n)}let o=new Map([...a.keys()].map(e=>[e,[]])),s=new Set,c=null,l=0,f=1;function now(){return l=Math.max(Date.now(),l+1),new Date(l).toISOString()}function newId(){let e;do e=`00000000-0000-4000-8000-${(f++).toString(16).padStart(12,`0`)}`;while(s.has(e));return e}function objectOf(t){let n=a.get(t),r=o.get(t);if(!(n&&r))throw new e._(404,`Object "${t}" not found. Make sure the object exists and you have access to it.`);return{definition:n,records:r}}function insert(e,n){let{records:r}=objectOf(e),{id:i,createdAt:a,updatedAt:o,...c}=n,l=now(),u={id:i??newId(),values:wire(t.s(c)),createdAt:isoOf(a,l),updatedAt:isoOf(o,isoOf(a,l)),visibility:`workspace`,ownedBy:null,metadata:{}};return r.push(u),s.add(u.id),u}function find(t,n){let r=objectOf(t).records.find(e=>e.id===n);if(!r)throw new e._(404,readNotFound(n),u);return r}function requireWritable(t,n){if(!objectOf(t).records.some(e=>e.id===n))throw new e._(404,writeNotFound(n),u)}function update(t,n,r){let i=objectOf(t).records.find(e=>e.id===n);if(!i)throw new e._(404,writeNotFound(n),u);return Object.assign(i.values,withoutSystemKeys(r)),i.updatedAt=now(),i}function remove(t,n){let{records:r}=objectOf(t),i=r.findIndex(e=>e.id===n);if(i===-1)throw new e._(404,writeNotFound(n),u);r.splice(i,1)}function list(e,t,r){let{definition:i,records:a}=objectOf(e);for(let e of t.filters?.rules??[])asTheServerValidates(()=>(0,n.validateQualifiedRule)(structuredClone(e),{attributes:i.attributes}));assertServedOperators(t.filters,i);let o=Math.min(boundOf(t.limit,`limit`,20),1e3),s=boundOf(t.offset,`offset`,0);if(o===0)return{data:[],page:{hasMore:!1,total:null,countMode:`none`}};let c=r?t.q:void 0,l=a.filter(e=>matchesFilters(e,t.filters,i)).filter(e=>c===void 0||matchesSearch(e,c)).sort(compareRecords(t.sorts,i)),u=l.slice(s,s+o);return{data:u,page:{hasMore:s+u.length<l.length,total:null,countMode:`none`}}}function bulk(t,r,i){let a=i.records??i.updates??i.ids;if(!Array.isArray(a)||a.length>100)throw new e._(400,`A bulk request carries at most 100 items.`);let o=withSystemAttributes(objectOf(t).definition);if(r===`bulk-create`){let r=[],i=[];for(let[s,c]of a.entries()){if(!isObject(c)){i.push({index:s,error:`Record data must be an object`});continue}try{asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(o,c)),r.push(insert(t,withoutSystemKeys(c)))}catch(t){if(!(t instanceof e._))throw t;i.push({index:s,error:t.message})}}return{created:r,errors:i}}if(r===`bulk-update`){let r=[],i=[];for(let{id:s,data:c}of a)try{if(!isObject(c))throw new e._(400,`Update data must be an object`,d);requireWritable(t,s),asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(o,c)),r.push(update(t,s,c))}catch(t){if(!(t instanceof e._))throw t;i.push({id:s,error:t.message,code:t.code??d})}return{updated:r,errors:i}}let s=[],c=[];for(let e of a)try{remove(t,e),s.push(e)}catch{c.push({id:e,error:writeNotFound(e),code:u})}return{deleted:s,errors:c}}function route(t,r,i){let[a,o,s,...c]=r.replace(/^\/+/,``).split(`/`);if(a!==`records`||o===void 0||c.length>0)throw notServed(t,r);let l=decodeURIComponent(o),u=s===void 0?void 0:decodeURIComponent(s),d=isObject(i)?i:{};if(t===`POST`&&u===void 0){let e=isObject(d.data)?d.data:{};return asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(withSystemAttributes(objectOf(l).definition),e)),insert(l,withoutSystemKeys(e))}if(t===`POST`&&(u===`list`||u===`search`))return list(l,d,u===`search`);if(t===`POST`&&u?.startsWith(`bulk-`))return bulk(l,u,d);if(u===void 0)throw notServed(t,r);if(t===`GET`)return find(l,u);if(t===`PUT`||t===`PATCH`){if(Object.keys(d).length===0)throw new e._(400,`Request body cannot be empty`);return requireWritable(l,u),asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(withSystemAttributes(objectOf(l).definition),d)),update(l,u,d)}if(t===`DELETE`)return remove(l,u),null;throw notServed(t,r)}function request(e,t,n){return Promise.resolve().then(()=>(takeFailure(),wire(route(e,t,n===void 0?void 0:wire(n)))))}function takeFailure(){if(c){let{status:e,failure:t}=c;throw c=null,errorFor(e,t.message??`Request failed with status ${e}`,t.code)}}let p={call:(e,t)=>Promise.resolve().then(()=>{takeFailure();let{path:n}=(0,r.splitOperationInput)(e,t??{});throw notServed(e.method,n)}),get:e=>request(`GET`,e),post:(e,t)=>request(`POST`,e,t),patch:(e,t)=>request(`PATCH`,e,t),put:(e,t)=>request(`PUT`,e,t),delete:e=>request(`DELETE`,e),getText:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`GET`,e)}),postRaw:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)}),postMultipart:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)})};return{transport:p,get:p.get,post:p.post,definitionOf:e=>objectOf(e).definition,seed:(e,t)=>t.map(t=>insert(e,t)),records:e=>objectOf(e).records,failNextRequestWith(e,t={}){c={status:e,failure:t}}}}function createTestStandards(e){let n=e.bundles.flatMap(e=>e.objectBuilders),r=createInMemoryApi({builders:n}),flatten=(e,n)=>t.o(r.definitionOf(e),JSON.parse(JSON.stringify(n)));return{db:t.t(r.transport,n),seed:(e,t)=>r.seed(e,t).map(t=>flatten(e,t)),records:e=>r.records(e).map(t=>flatten(e,t)),failNextRequestWith:(e,t)=>r.failNextRequestWith(e,t)}}exports.UnsupportedFilterOperatorError=UnsupportedFilterOperatorError,exports.createTestStandards=createTestStandards;
|
|
2
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./http-transport-CAPVZuiv.js"),t=require("./create-standards-CjO1pFmM.js");let n=require("@standards/schema"),r=require("@standards/schema/api");var UnsupportedFilterOperatorError=class extends Error{constructor(e,t){super(`The in-memory test workspace does not serve the "${e}" operator (on "${t}"). Test it against a real workspace.`),this.name=`UnsupportedFilterOperatorError`,this.operator=e}};const i=new Set([`id`,`createdAt`,`updatedAt`]),a=new Set([`createdAt`,`updatedAt`]),o=new Set([`number`,`currency`]),s=new Set([`select`,`status`]),c=/^\d{4}-\d{2}-\d{2}/;function attributeValue(e,t){if(i.has(t))return e[t];let n=e.values[t];return typeof n==`object`&&n&&`value`in n&&!Array.isArray(n)?n.value:n}function isEmptyValue(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function textOf(e){return e==null?null:e instanceof Date?e.toISOString():typeof e==`string`?e:JSON.stringify(e)}function members(e){return Array.isArray(e)?e.map(String):null}function dayOf(e){let t=textOf(e);if(t===null||!c.test(t))return null;let n=t.slice(0,10);return Number.isNaN(Date.parse(`${n}T00:00:00.000Z`))?null:n}function nextDay(e){let t=new Date(`${e}T00:00:00.000Z`);return t.setUTCDate(t.getUTCDate()+1),t.toISOString().slice(0,10)}function isUnmodelledDate(e){if(e?.type!==`date`)return!1;let t=e;return t.endDate===!0||t.includeTime===!0}function matchesDay(e,t,n,r){let i=dayOf(n);if(i===null)return!1;let a=textOf(t),o=nextDay(i),s=r?textOf(n)??i:i;switch(e){case`is`:return a!==null&&a>=s&&a<o;case`is_not`:return a===null||a<s||a>=o;case`greater_than`:return a!==null&&a>=o;case`greater_or_equal`:return a!==null&&a>=s;case`less_than`:return a!==null&&a<s;default:return a!==null&&a<o}}function compare(e,t,n){let r=textOf(e),i=textOf(t);if(r===null||i===null)return null;if(n){let e=Number(r),t=Number(i);return r===``||Number.isNaN(e)||Number.isNaN(t)?null:e-t}return r<i?-1:+(r>i)}function matchesRule(e,t,n){let r=n.attributes.find(e=>e.name===t.attribute)?.type,i=attributeValue(e,t.attribute),s=r!==void 0&&o.has(r),c=textOf(t.value)?.toLowerCase(),l=textOf(i)?.toLowerCase()??null;if((r===`date`||a.has(t.attribute))&&[`is`,`is_not`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`].includes(t.operator))return matchesDay(t.operator,i,t.value,a.has(t.attribute));switch(t.operator){case`is`:return r===`checkbox`||r===void 0&&typeof t.value==`boolean`?t.value===!0?i===!0:i!==!0:textOf(i)!==null&&textOf(i)===textOf(t.value);case`is_not`:return textOf(i)===null||textOf(i)!==textOf(t.value);case`contains`:return Array.isArray(i)?(Array.isArray(t.value)?t.value.map(String):[String(t.value)]).every(e=>i.map(String).includes(e)):l!==null&&c!==void 0&&l.includes(c);case`not_contains`:return i==null||!matchesRule(e,{...t,operator:`contains`},n);case`starts_with`:return l!==null&&c!==void 0&&l.startsWith(c);case`ends_with`:return l!==null&&c!==void 0&&l.endsWith(c);case`greater_than`:case`greater_or_equal`:case`less_than`:case`less_or_equal`:{let e=compare(i,t.value,s);return e===null?!1:t.operator===`greater_than`?e>0:t.operator===`greater_or_equal`?e>=0:t.operator===`less_than`?e<0:e<=0}case`is_empty`:return isEmptyValue(i);case`is_not_empty`:return!isEmptyValue(i);case`any_of`:{let e=members(t.value);return e===null||e.length===0||i==null?!1:Array.isArray(i)?i.some(t=>e.includes(String(t))):e.includes(textOf(i)??``)}case`none_of`:{let e=members(t.value);return e===null?!1:e.length===0||i==null?!0:Array.isArray(i)?!i.some(t=>e.includes(String(t))):!e.includes(textOf(i)??``)}default:throw new UnsupportedFilterOperatorError(t.operator,t.attribute)}}const l=new Set([`is`,`is_not`,`contains`,`not_contains`,`starts_with`,`ends_with`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`,`is_empty`,`is_not_empty`,`any_of`,`none_of`]);function assertServedOperators(e,t){for(let n of e?.rules??[])if(!l.has(n.operator)||isUnmodelledDate(t.attributes.find(e=>e.name===n.attribute))&&n.operator!==`is_empty`&&n.operator!==`is_not_empty`)throw new UnsupportedFilterOperatorError(n.operator,n.attribute)}function matchesFilters(e,t,n){let r=t?.rules??[];if(r.length===0)return!0;let i=r.map(t=>matchesRule(e,t,n));return t?.combinator===`or`?i.some(Boolean):i.every(Boolean)}function matchesSearch(e,t){let n=t.trim().toLowerCase();return n===``||Object.values(e.values).some(e=>(Array.isArray(e)?e:[e]).some(e=>typeof e==`string`&&e.toLowerCase().includes(n)))}function sortKey(e,t,n){let r=attributeValue(e,t),i=n.attributes.find(e=>e.name===t);if(i&&s.has(i.type)){let e=(i.options??[]).findIndex(e=>e.value===r);return{position:e===-1?null:e,value:r}}return r}function isOptionKey(e){return typeof e==`object`&&!!e&&`position`in e}function compareOptionKeys(e,t,n){let r=n===`desc`?-1:1;return e.position!==null&&t.position!==null?r*(e.position-t.position):e.position!==null||t.position!==null?e.position===null?1:-1:r*(compare(e.value,t.value,!1)??0)}function compareRecords(e,t){let n=e&&e.length>0?[...e]:[{attribute:`createdAt`,direction:`desc`}];return n.some(e=>e.attribute===`id`)||n.push({attribute:`id`,direction:`asc`}),(e,r)=>{for(let i of n){let n=t.attributes.find(e=>e.name===i.attribute)?.type,a=sortKey(e,i.attribute,t),s=sortKey(r,i.attribute,t),c=isOptionKey(a)?a.value:a,l=isOptionKey(s)?s.value:s,u=textOf(c)===null,d=textOf(l)===null;if(u||d){if(u&&d)continue;return u?1:-1}if(isOptionKey(a)&&isOptionKey(s)){let e=compareOptionKeys(a,s,i.direction);if(e!==0)return e;continue}let f=compare(a,s,n!==void 0&&o.has(n))??0;if(f!==0)return i.direction===`desc`?-f:f}return 0}}const u=`SCHEMA_RECORD_NOT_FOUND`,d=`SCHEMA_VALIDATION_FAILED`,readNotFound=e=>`Record "${e}" not found.`,writeNotFound=e=>`Record with id "${e}" not found`,f=[`id`,`createdAt`,`updatedAt`];function withSystemAttributes(e){return{...e,attributes:[...e.attributes,...(0,n.getObjectSystemAttributes)(e)]}}function withoutSystemKeys(e){let t={...e};for(let e of f)delete t[e];return t}function boundOf(t,n,r){if(t==null)return r;if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0)throw new e._(400,`${n} must be a non-negative integer`);return t}function isObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function errorFor(t,n,r){return t===401||t===403?new e.h(t,n,r):new e._(t,n,r)}function asTheServerValidates(t){try{t()}catch(t){throw t instanceof n.ValidationError?new e._(400,t.message,t.code):t}}function notServed(t,n){return new e._(501,`The in-memory test workspace does not serve ${t} ${n}: only the records API is in memory.`)}function isoOf(e,t){return e===void 0?t:e instanceof Date?e.toISOString():new Date(e).toISOString()}function wire(e){return JSON.parse(JSON.stringify(e))}function createInMemoryApi(i){let a=new Map;for(let e of i.builders){let n=t.a(e);a.set(n.name,n)}let o=new Map([...a.keys()].map(e=>[e,[]])),s=new Set,c=null,l=0,f=1;function now(){return l=Math.max(Date.now(),l+1),new Date(l).toISOString()}function newId(){let e;do e=`00000000-0000-4000-8000-${(f++).toString(16).padStart(12,`0`)}`;while(s.has(e));return e}function objectOf(t){let n=a.get(t),r=o.get(t);if(!(n&&r))throw new e._(404,`Object "${t}" not found. Make sure the object exists and you have access to it.`);return{definition:n,records:r}}function insert(e,n){let{records:r}=objectOf(e),{id:i,createdAt:a,updatedAt:o,...c}=n,l=now(),u={id:i??newId(),values:wire(t.s(c)),createdAt:isoOf(a,l),updatedAt:isoOf(o,isoOf(a,l)),visibility:`workspace`,ownedBy:null,metadata:{}};return r.push(u),s.add(u.id),u}function find(t,n){let r=objectOf(t).records.find(e=>e.id===n);if(!r)throw new e._(404,readNotFound(n),u);return r}function requireWritable(t,n){if(!objectOf(t).records.some(e=>e.id===n))throw new e._(404,writeNotFound(n),u)}function update(t,n,r){let i=objectOf(t).records.find(e=>e.id===n);if(!i)throw new e._(404,writeNotFound(n),u);return Object.assign(i.values,withoutSystemKeys(r)),i.updatedAt=now(),i}function remove(t,n){let{records:r}=objectOf(t),i=r.findIndex(e=>e.id===n);if(i===-1)throw new e._(404,writeNotFound(n),u);r.splice(i,1)}function list(e,t,r){let{definition:i,records:a}=objectOf(e);for(let e of t.filters?.rules??[])asTheServerValidates(()=>(0,n.validateQualifiedRule)(structuredClone(e),{attributes:i.attributes}));assertServedOperators(t.filters,i);let o=Math.min(boundOf(t.limit,`limit`,20),1e3),s=boundOf(t.offset,`offset`,0);if(o===0)return{data:[],page:{hasMore:!1,total:null,countMode:`none`}};let c=r?t.q:void 0,l=a.filter(e=>matchesFilters(e,t.filters,i)).filter(e=>c===void 0||matchesSearch(e,c)).sort(compareRecords(t.sorts,i)),u=l.slice(s,s+o);return{data:u,page:{hasMore:s+u.length<l.length,total:null,countMode:`none`}}}function bulk(t,r,i){let a=i.records??i.updates??i.ids;if(!Array.isArray(a)||a.length>100)throw new e._(400,`A bulk request carries at most 100 items.`);let o=withSystemAttributes(objectOf(t).definition);if(r===`bulk-create`){let r=[],i=[];for(let[s,c]of a.entries()){if(!isObject(c)){i.push({index:s,error:`Record data must be an object`});continue}try{asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(o,c)),r.push(insert(t,withoutSystemKeys(c)))}catch(t){if(!(t instanceof e._))throw t;i.push({index:s,error:t.message})}}return{created:r,errors:i}}if(r===`bulk-update`){let r=[],i=[];for(let{id:s,data:c}of a)try{if(!isObject(c))throw new e._(400,`Update data must be an object`,d);requireWritable(t,s),asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(o,c)),r.push(update(t,s,c))}catch(t){if(!(t instanceof e._))throw t;i.push({id:s,error:t.message,code:t.code??d})}return{updated:r,errors:i}}let s=[],c=[];for(let e of a)try{remove(t,e),s.push(e)}catch{c.push({id:e,error:writeNotFound(e),code:u})}return{deleted:s,errors:c}}function route(t,r,i){let[a,o,s,...c]=r.replace(/^\/+/,``).split(`/`);if(a!==`records`||o===void 0||c.length>0)throw notServed(t,r);let l=decodeURIComponent(o),u=s===void 0?void 0:decodeURIComponent(s),d=isObject(i)?i:{};if(t===`POST`&&u===void 0){let e=isObject(d.data)?d.data:{};return asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(withSystemAttributes(objectOf(l).definition),e)),insert(l,withoutSystemKeys(e))}if(t===`POST`&&(u===`list`||u===`search`))return list(l,d,u===`search`);if(t===`POST`&&u?.startsWith(`bulk-`))return bulk(l,u,d);if(u===void 0)throw notServed(t,r);if(t===`GET`)return find(l,u);if(t===`PUT`||t===`PATCH`){if(Object.keys(d).length===0)throw new e._(400,`Request body cannot be empty`);return requireWritable(l,u),asTheServerValidates(()=>(0,n.rejectUnknownAttributesOrThrow)(withSystemAttributes(objectOf(l).definition),d)),update(l,u,d)}if(t===`DELETE`)return remove(l,u),null;throw notServed(t,r)}function request(e,t,n){return Promise.resolve().then(()=>(takeFailure(),wire(route(e,t,n===void 0?void 0:wire(n)))))}function takeFailure(){if(c){let{status:e,failure:t}=c;throw c=null,errorFor(e,t.message??`Request failed with status ${e}`,t.code)}}let p={call:(e,t)=>Promise.resolve().then(()=>{takeFailure();let{path:n}=(0,r.splitOperationInput)(e,t??{});throw notServed(e.method,n)}),get:e=>request(`GET`,e),post:(e,t)=>request(`POST`,e,t),patch:(e,t)=>request(`PATCH`,e,t),put:(e,t)=>request(`PUT`,e,t),delete:e=>request(`DELETE`,e),getText:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`GET`,e)}),postRaw:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)}),postMultipart:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)})};return{transport:p,get:p.get,post:p.post,definitionOf:e=>objectOf(e).definition,seed:(e,t)=>t.map(t=>insert(e,t)),records:e=>objectOf(e).records,failNextRequestWith(e,t={}){c={status:e,failure:t}}}}function createTestStandards(e){let n=e.bundles.flatMap(e=>e.objectBuilders),r=createInMemoryApi({builders:n}),flatten=(e,n)=>t.o(r.definitionOf(e),JSON.parse(JSON.stringify(n)));return{db:t.t(r.transport,n),seed:(e,t)=>r.seed(e,t).map(t=>flatten(e,t)),records:e=>r.records(e).map(t=>flatten(e,t)),failNextRequestWith:(e,t)=>r.failNextRequestWith(e,t)}}exports.UnsupportedFilterOperatorError=UnsupportedFilterOperatorError,exports.createTestStandards=createTestStandards;
|
package/dist/testing.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! © 2025-2026 AND YOU CREATE SAS (RCS Paris 940 190 614). Proprietary — see LICENSE (Standards SDK License 1.0). */
|
|
2
|
-
import{_ as e,h as t}from"./http-transport-BxgXm4Oi.mjs";import{a as n,o as r,s as i,t as a}from"./create-standards-CEL4N0C_.mjs";import{ValidationError as o,getSystemAttributeList as s,rejectUnknownAttributesOrThrow as c,validateQualifiedRule as l}from"@standards/schema";import{splitOperationInput as u}from"@standards/schema/api";var UnsupportedFilterOperatorError=class extends Error{constructor(e,t){super(`The in-memory test workspace does not serve the "${e}" operator (on "${t}"). Test it against a real workspace.`),this.name=`UnsupportedFilterOperatorError`,this.operator=e}};const d=new Set([`id`,`createdAt`,`updatedAt`]),f=new Set([`createdAt`,`updatedAt`]),p=new Set([`number`,`currency`]),m=new Set([`select`,`status`]),h=/^\d{4}-\d{2}-\d{2}/;function attributeValue(e,t){if(d.has(t))return e[t];let n=e.values[t];return typeof n==`object`&&n&&`value`in n&&!Array.isArray(n)?n.value:n}function isEmptyValue(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function textOf(e){return e==null?null:e instanceof Date?e.toISOString():typeof e==`string`?e:JSON.stringify(e)}function members(e){return Array.isArray(e)?e.map(String):null}function dayOf(e){let t=textOf(e);if(t===null||!h.test(t))return null;let n=t.slice(0,10);return Number.isNaN(Date.parse(`${n}T00:00:00.000Z`))?null:n}function nextDay(e){let t=new Date(`${e}T00:00:00.000Z`);return t.setUTCDate(t.getUTCDate()+1),t.toISOString().slice(0,10)}function isUnmodelledDate(e){if(e?.type!==`date`)return!1;let t=e;return t.endDate===!0||t.includeTime===!0}function matchesDay(e,t,n,r){let i=dayOf(n);if(i===null)return!1;let a=textOf(t),o=nextDay(i),s=r?textOf(n)??i:i;switch(e){case`is`:return a!==null&&a>=s&&a<o;case`is_not`:return a===null||a<s||a>=o;case`greater_than`:return a!==null&&a>=o;case`greater_or_equal`:return a!==null&&a>=s;case`less_than`:return a!==null&&a<s;default:return a!==null&&a<o}}function compare(e,t,n){let r=textOf(e),i=textOf(t);if(r===null||i===null)return null;if(n){let e=Number(r),t=Number(i);return r===``||Number.isNaN(e)||Number.isNaN(t)?null:e-t}return r<i?-1:+(r>i)}function matchesRule(e,t,n){let r=n.attributes.find(e=>e.name===t.attribute)?.type,i=attributeValue(e,t.attribute),a=r!==void 0&&p.has(r),o=textOf(t.value)?.toLowerCase(),s=textOf(i)?.toLowerCase()??null;if((r===`date`||f.has(t.attribute))&&[`is`,`is_not`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`].includes(t.operator))return matchesDay(t.operator,i,t.value,f.has(t.attribute));switch(t.operator){case`is`:return r===`checkbox`||r===void 0&&typeof t.value==`boolean`?t.value===!0?i===!0:i!==!0:textOf(i)!==null&&textOf(i)===textOf(t.value);case`is_not`:return textOf(i)===null||textOf(i)!==textOf(t.value);case`contains`:return Array.isArray(i)?(Array.isArray(t.value)?t.value.map(String):[String(t.value)]).every(e=>i.map(String).includes(e)):s!==null&&o!==void 0&&s.includes(o);case`not_contains`:return i==null||!matchesRule(e,{...t,operator:`contains`},n);case`starts_with`:return s!==null&&o!==void 0&&s.startsWith(o);case`ends_with`:return s!==null&&o!==void 0&&s.endsWith(o);case`greater_than`:case`greater_or_equal`:case`less_than`:case`less_or_equal`:{let e=compare(i,t.value,a);return e===null?!1:t.operator===`greater_than`?e>0:t.operator===`greater_or_equal`?e>=0:t.operator===`less_than`?e<0:e<=0}case`is_empty`:return isEmptyValue(i);case`is_not_empty`:return!isEmptyValue(i);case`any_of`:{let e=members(t.value);return e===null||e.length===0||i==null?!1:Array.isArray(i)?i.some(t=>e.includes(String(t))):e.includes(textOf(i)??``)}case`none_of`:{let e=members(t.value);return e===null?!1:e.length===0||i==null?!0:Array.isArray(i)?!i.some(t=>e.includes(String(t))):!e.includes(textOf(i)??``)}default:throw new UnsupportedFilterOperatorError(t.operator,t.attribute)}}const g=new Set([`is`,`is_not`,`contains`,`not_contains`,`starts_with`,`ends_with`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`,`is_empty`,`is_not_empty`,`any_of`,`none_of`]);function assertServedOperators(e,t){for(let n of e?.rules??[])if(!g.has(n.operator)||isUnmodelledDate(t.attributes.find(e=>e.name===n.attribute))&&n.operator!==`is_empty`&&n.operator!==`is_not_empty`)throw new UnsupportedFilterOperatorError(n.operator,n.attribute)}function matchesFilters(e,t,n){let r=t?.rules??[];if(r.length===0)return!0;let i=r.map(t=>matchesRule(e,t,n));return t?.combinator===`or`?i.some(Boolean):i.every(Boolean)}function matchesSearch(e,t){let n=t.trim().toLowerCase();return n===``||Object.values(e.values).some(e=>(Array.isArray(e)?e:[e]).some(e=>typeof e==`string`&&e.toLowerCase().includes(n)))}function sortKey(e,t,n){let r=attributeValue(e,t),i=n.attributes.find(e=>e.name===t);if(i&&m.has(i.type)){let e=(i.options??[]).findIndex(e=>e.value===r);return{position:e===-1?null:e,value:r}}return r}function isOptionKey(e){return typeof e==`object`&&!!e&&`position`in e}function compareOptionKeys(e,t,n){let r=n===`desc`?-1:1;return e.position!==null&&t.position!==null?r*(e.position-t.position):e.position!==null||t.position!==null?e.position===null?1:-1:r*(compare(e.value,t.value,!1)??0)}function compareRecords(e,t){let n=e&&e.length>0?[...e]:[{attribute:`createdAt`,direction:`desc`}];return n.some(e=>e.attribute===`id`)||n.push({attribute:`id`,direction:`asc`}),(e,r)=>{for(let i of n){let n=t.attributes.find(e=>e.name===i.attribute)?.type,a=sortKey(e,i.attribute,t),o=sortKey(r,i.attribute,t),s=isOptionKey(a)?a.value:a,c=isOptionKey(o)?o.value:o,l=textOf(s)===null,u=textOf(c)===null;if(l||u){if(l&&u)continue;return l?1:-1}if(isOptionKey(a)&&isOptionKey(o)){let e=compareOptionKeys(a,o,i.direction);if(e!==0)return e;continue}let d=compare(a,o,n!==void 0&&p.has(n))??0;if(d!==0)return i.direction===`desc`?-d:d}return 0}}const _=`SCHEMA_RECORD_NOT_FOUND`,v=`SCHEMA_VALIDATION_FAILED`,readNotFound=e=>`Record "${e}" not found.`,writeNotFound=e=>`Record with id "${e}" not found`,y=[`id`,`createdAt`,`updatedAt`];function withSystemAttributes(e){return{...e,attributes:[...e.attributes,...s()]}}function withoutSystemKeys(e){let t={...e};for(let e of y)delete t[e];return t}function boundOf(t,n,r){if(t==null)return r;if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0)throw new e(400,`${n} must be a non-negative integer`);return t}function isObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function errorFor(n,r,i){return n===401||n===403?new t(n,r,i):new e(n,r,i)}function asTheServerValidates(t){try{t()}catch(t){throw t instanceof o?new e(400,t.message,t.code):t}}function notServed(t,n){return new e(501,`The in-memory test workspace does not serve ${t} ${n}: only the records API is in memory.`)}function isoOf(e,t){return e===void 0?t:e instanceof Date?e.toISOString():new Date(e).toISOString()}function wire(e){return JSON.parse(JSON.stringify(e))}function createInMemoryApi(t){let r=new Map;for(let e of t.builders){let t=n(e);r.set(t.name,t)}let a=new Map([...r.keys()].map(e=>[e,[]])),o=new Set,s=null,d=0,f=1;function now(){return d=Math.max(Date.now(),d+1),new Date(d).toISOString()}function newId(){let e;do e=`00000000-0000-4000-8000-${(f++).toString(16).padStart(12,`0`)}`;while(o.has(e));return e}function objectOf(t){let n=r.get(t),i=a.get(t);if(!(n&&i))throw new e(404,`Object "${t}" not found. Make sure the object exists and you have access to it.`);return{definition:n,records:i}}function insert(e,t){let{records:n}=objectOf(e),{id:r,createdAt:a,updatedAt:s,...c}=t,l=now(),u={id:r??newId(),values:wire(i(c)),createdAt:isoOf(a,l),updatedAt:isoOf(s,isoOf(a,l)),visibility:`workspace`,ownedBy:null,metadata:{}};return n.push(u),o.add(u.id),u}function find(t,n){let r=objectOf(t).records.find(e=>e.id===n);if(!r)throw new e(404,readNotFound(n),_);return r}function requireWritable(t,n){if(!objectOf(t).records.some(e=>e.id===n))throw new e(404,writeNotFound(n),_)}function update(t,n,r){let i=objectOf(t).records.find(e=>e.id===n);if(!i)throw new e(404,writeNotFound(n),_);return Object.assign(i.values,withoutSystemKeys(r)),i.updatedAt=now(),i}function remove(t,n){let{records:r}=objectOf(t),i=r.findIndex(e=>e.id===n);if(i===-1)throw new e(404,writeNotFound(n),_);r.splice(i,1)}function list(e,t,n){let{definition:r,records:i}=objectOf(e);for(let e of t.filters?.rules??[])asTheServerValidates(()=>l(structuredClone(e),{attributes:r.attributes}));assertServedOperators(t.filters,r);let a=Math.min(boundOf(t.limit,`limit`,20),1e3),o=boundOf(t.offset,`offset`,0);if(a===0)return{data:[],page:{hasMore:!1,total:null,countMode:`none`}};let s=n?t.q:void 0,c=i.filter(e=>matchesFilters(e,t.filters,r)).filter(e=>s===void 0||matchesSearch(e,s)).sort(compareRecords(t.sorts,r)),u=c.slice(o,o+a);return{data:u,page:{hasMore:o+u.length<c.length,total:null,countMode:`none`}}}function bulk(t,n,r){let i=r.records??r.updates??r.ids;if(!Array.isArray(i)||i.length>100)throw new e(400,`A bulk request carries at most 100 items.`);let a=withSystemAttributes(objectOf(t).definition);if(n===`bulk-create`){let n=[],r=[];for(let[o,s]of i.entries()){if(!isObject(s)){r.push({index:o,error:`Record data must be an object`});continue}try{asTheServerValidates(()=>c(a,s)),n.push(insert(t,withoutSystemKeys(s)))}catch(t){if(!(t instanceof e))throw t;r.push({index:o,error:t.message})}}return{created:n,errors:r}}if(n===`bulk-update`){let n=[],r=[];for(let{id:o,data:s}of i)try{if(!isObject(s))throw new e(400,`Update data must be an object`,v);requireWritable(t,o),asTheServerValidates(()=>c(a,s)),n.push(update(t,o,s))}catch(t){if(!(t instanceof e))throw t;r.push({id:o,error:t.message,code:t.code??v})}return{updated:n,errors:r}}let o=[],s=[];for(let e of i)try{remove(t,e),o.push(e)}catch{s.push({id:e,error:writeNotFound(e),code:_})}return{deleted:o,errors:s}}function route(t,n,r){let[i,a,o,...s]=n.replace(/^\/+/,``).split(`/`);if(i!==`records`||a===void 0||s.length>0)throw notServed(t,n);let l=decodeURIComponent(a),u=o===void 0?void 0:decodeURIComponent(o),d=isObject(r)?r:{};if(t===`POST`&&u===void 0){let e=isObject(d.data)?d.data:{};return asTheServerValidates(()=>c(withSystemAttributes(objectOf(l).definition),e)),insert(l,withoutSystemKeys(e))}if(t===`POST`&&(u===`list`||u===`search`))return list(l,d,u===`search`);if(t===`POST`&&u?.startsWith(`bulk-`))return bulk(l,u,d);if(u===void 0)throw notServed(t,n);if(t===`GET`)return find(l,u);if(t===`PUT`||t===`PATCH`){if(Object.keys(d).length===0)throw new e(400,`Request body cannot be empty`);return requireWritable(l,u),asTheServerValidates(()=>c(withSystemAttributes(objectOf(l).definition),d)),update(l,u,d)}if(t===`DELETE`)return remove(l,u),null;throw notServed(t,n)}function request(e,t,n){return Promise.resolve().then(()=>(takeFailure(),wire(route(e,t,n===void 0?void 0:wire(n)))))}function takeFailure(){if(s){let{status:e,failure:t}=s;throw s=null,errorFor(e,t.message??`Request failed with status ${e}`,t.code)}}let p={call:(e,t)=>Promise.resolve().then(()=>{takeFailure();let{path:n}=u(e,t??{});throw notServed(e.method,n)}),get:e=>request(`GET`,e),post:(e,t)=>request(`POST`,e,t),patch:(e,t)=>request(`PATCH`,e,t),put:(e,t)=>request(`PUT`,e,t),delete:e=>request(`DELETE`,e),getText:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`GET`,e)}),postRaw:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)}),postMultipart:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)})};return{transport:p,get:p.get,post:p.post,definitionOf:e=>objectOf(e).definition,seed:(e,t)=>t.map(t=>insert(e,t)),records:e=>objectOf(e).records,failNextRequestWith(e,t={}){s={status:e,failure:t}}}}function createTestStandards(e){let t=e.bundles.flatMap(e=>e.objectBuilders),n=createInMemoryApi({builders:t}),flatten=(e,t)=>r(n.definitionOf(e),JSON.parse(JSON.stringify(t)));return{db:a(n.transport,t),seed:(e,t)=>n.seed(e,t).map(t=>flatten(e,t)),records:e=>n.records(e).map(t=>flatten(e,t)),failNextRequestWith:(e,t)=>n.failNextRequestWith(e,t)}}export{UnsupportedFilterOperatorError,createTestStandards};
|
|
2
|
+
import{_ as e,h as t}from"./http-transport-BxgXm4Oi.mjs";import{a as n,o as r,s as i,t as a}from"./create-standards-CEL4N0C_.mjs";import{ValidationError as o,getObjectSystemAttributes as s,rejectUnknownAttributesOrThrow as c,validateQualifiedRule as l}from"@standards/schema";import{splitOperationInput as u}from"@standards/schema/api";var UnsupportedFilterOperatorError=class extends Error{constructor(e,t){super(`The in-memory test workspace does not serve the "${e}" operator (on "${t}"). Test it against a real workspace.`),this.name=`UnsupportedFilterOperatorError`,this.operator=e}};const d=new Set([`id`,`createdAt`,`updatedAt`]),f=new Set([`createdAt`,`updatedAt`]),p=new Set([`number`,`currency`]),m=new Set([`select`,`status`]),h=/^\d{4}-\d{2}-\d{2}/;function attributeValue(e,t){if(d.has(t))return e[t];let n=e.values[t];return typeof n==`object`&&n&&`value`in n&&!Array.isArray(n)?n.value:n}function isEmptyValue(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function textOf(e){return e==null?null:e instanceof Date?e.toISOString():typeof e==`string`?e:JSON.stringify(e)}function members(e){return Array.isArray(e)?e.map(String):null}function dayOf(e){let t=textOf(e);if(t===null||!h.test(t))return null;let n=t.slice(0,10);return Number.isNaN(Date.parse(`${n}T00:00:00.000Z`))?null:n}function nextDay(e){let t=new Date(`${e}T00:00:00.000Z`);return t.setUTCDate(t.getUTCDate()+1),t.toISOString().slice(0,10)}function isUnmodelledDate(e){if(e?.type!==`date`)return!1;let t=e;return t.endDate===!0||t.includeTime===!0}function matchesDay(e,t,n,r){let i=dayOf(n);if(i===null)return!1;let a=textOf(t),o=nextDay(i),s=r?textOf(n)??i:i;switch(e){case`is`:return a!==null&&a>=s&&a<o;case`is_not`:return a===null||a<s||a>=o;case`greater_than`:return a!==null&&a>=o;case`greater_or_equal`:return a!==null&&a>=s;case`less_than`:return a!==null&&a<s;default:return a!==null&&a<o}}function compare(e,t,n){let r=textOf(e),i=textOf(t);if(r===null||i===null)return null;if(n){let e=Number(r),t=Number(i);return r===``||Number.isNaN(e)||Number.isNaN(t)?null:e-t}return r<i?-1:+(r>i)}function matchesRule(e,t,n){let r=n.attributes.find(e=>e.name===t.attribute)?.type,i=attributeValue(e,t.attribute),a=r!==void 0&&p.has(r),o=textOf(t.value)?.toLowerCase(),s=textOf(i)?.toLowerCase()??null;if((r===`date`||f.has(t.attribute))&&[`is`,`is_not`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`].includes(t.operator))return matchesDay(t.operator,i,t.value,f.has(t.attribute));switch(t.operator){case`is`:return r===`checkbox`||r===void 0&&typeof t.value==`boolean`?t.value===!0?i===!0:i!==!0:textOf(i)!==null&&textOf(i)===textOf(t.value);case`is_not`:return textOf(i)===null||textOf(i)!==textOf(t.value);case`contains`:return Array.isArray(i)?(Array.isArray(t.value)?t.value.map(String):[String(t.value)]).every(e=>i.map(String).includes(e)):s!==null&&o!==void 0&&s.includes(o);case`not_contains`:return i==null||!matchesRule(e,{...t,operator:`contains`},n);case`starts_with`:return s!==null&&o!==void 0&&s.startsWith(o);case`ends_with`:return s!==null&&o!==void 0&&s.endsWith(o);case`greater_than`:case`greater_or_equal`:case`less_than`:case`less_or_equal`:{let e=compare(i,t.value,a);return e===null?!1:t.operator===`greater_than`?e>0:t.operator===`greater_or_equal`?e>=0:t.operator===`less_than`?e<0:e<=0}case`is_empty`:return isEmptyValue(i);case`is_not_empty`:return!isEmptyValue(i);case`any_of`:{let e=members(t.value);return e===null||e.length===0||i==null?!1:Array.isArray(i)?i.some(t=>e.includes(String(t))):e.includes(textOf(i)??``)}case`none_of`:{let e=members(t.value);return e===null?!1:e.length===0||i==null?!0:Array.isArray(i)?!i.some(t=>e.includes(String(t))):!e.includes(textOf(i)??``)}default:throw new UnsupportedFilterOperatorError(t.operator,t.attribute)}}const g=new Set([`is`,`is_not`,`contains`,`not_contains`,`starts_with`,`ends_with`,`greater_than`,`greater_or_equal`,`less_than`,`less_or_equal`,`is_empty`,`is_not_empty`,`any_of`,`none_of`]);function assertServedOperators(e,t){for(let n of e?.rules??[])if(!g.has(n.operator)||isUnmodelledDate(t.attributes.find(e=>e.name===n.attribute))&&n.operator!==`is_empty`&&n.operator!==`is_not_empty`)throw new UnsupportedFilterOperatorError(n.operator,n.attribute)}function matchesFilters(e,t,n){let r=t?.rules??[];if(r.length===0)return!0;let i=r.map(t=>matchesRule(e,t,n));return t?.combinator===`or`?i.some(Boolean):i.every(Boolean)}function matchesSearch(e,t){let n=t.trim().toLowerCase();return n===``||Object.values(e.values).some(e=>(Array.isArray(e)?e:[e]).some(e=>typeof e==`string`&&e.toLowerCase().includes(n)))}function sortKey(e,t,n){let r=attributeValue(e,t),i=n.attributes.find(e=>e.name===t);if(i&&m.has(i.type)){let e=(i.options??[]).findIndex(e=>e.value===r);return{position:e===-1?null:e,value:r}}return r}function isOptionKey(e){return typeof e==`object`&&!!e&&`position`in e}function compareOptionKeys(e,t,n){let r=n===`desc`?-1:1;return e.position!==null&&t.position!==null?r*(e.position-t.position):e.position!==null||t.position!==null?e.position===null?1:-1:r*(compare(e.value,t.value,!1)??0)}function compareRecords(e,t){let n=e&&e.length>0?[...e]:[{attribute:`createdAt`,direction:`desc`}];return n.some(e=>e.attribute===`id`)||n.push({attribute:`id`,direction:`asc`}),(e,r)=>{for(let i of n){let n=t.attributes.find(e=>e.name===i.attribute)?.type,a=sortKey(e,i.attribute,t),o=sortKey(r,i.attribute,t),s=isOptionKey(a)?a.value:a,c=isOptionKey(o)?o.value:o,l=textOf(s)===null,u=textOf(c)===null;if(l||u){if(l&&u)continue;return l?1:-1}if(isOptionKey(a)&&isOptionKey(o)){let e=compareOptionKeys(a,o,i.direction);if(e!==0)return e;continue}let d=compare(a,o,n!==void 0&&p.has(n))??0;if(d!==0)return i.direction===`desc`?-d:d}return 0}}const _=`SCHEMA_RECORD_NOT_FOUND`,v=`SCHEMA_VALIDATION_FAILED`,readNotFound=e=>`Record "${e}" not found.`,writeNotFound=e=>`Record with id "${e}" not found`,y=[`id`,`createdAt`,`updatedAt`];function withSystemAttributes(e){return{...e,attributes:[...e.attributes,...s(e)]}}function withoutSystemKeys(e){let t={...e};for(let e of y)delete t[e];return t}function boundOf(t,n,r){if(t==null)return r;if(typeof t!=`number`||!Number.isSafeInteger(t)||t<0)throw new e(400,`${n} must be a non-negative integer`);return t}function isObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function errorFor(n,r,i){return n===401||n===403?new t(n,r,i):new e(n,r,i)}function asTheServerValidates(t){try{t()}catch(t){throw t instanceof o?new e(400,t.message,t.code):t}}function notServed(t,n){return new e(501,`The in-memory test workspace does not serve ${t} ${n}: only the records API is in memory.`)}function isoOf(e,t){return e===void 0?t:e instanceof Date?e.toISOString():new Date(e).toISOString()}function wire(e){return JSON.parse(JSON.stringify(e))}function createInMemoryApi(t){let r=new Map;for(let e of t.builders){let t=n(e);r.set(t.name,t)}let a=new Map([...r.keys()].map(e=>[e,[]])),o=new Set,s=null,d=0,f=1;function now(){return d=Math.max(Date.now(),d+1),new Date(d).toISOString()}function newId(){let e;do e=`00000000-0000-4000-8000-${(f++).toString(16).padStart(12,`0`)}`;while(o.has(e));return e}function objectOf(t){let n=r.get(t),i=a.get(t);if(!(n&&i))throw new e(404,`Object "${t}" not found. Make sure the object exists and you have access to it.`);return{definition:n,records:i}}function insert(e,t){let{records:n}=objectOf(e),{id:r,createdAt:a,updatedAt:s,...c}=t,l=now(),u={id:r??newId(),values:wire(i(c)),createdAt:isoOf(a,l),updatedAt:isoOf(s,isoOf(a,l)),visibility:`workspace`,ownedBy:null,metadata:{}};return n.push(u),o.add(u.id),u}function find(t,n){let r=objectOf(t).records.find(e=>e.id===n);if(!r)throw new e(404,readNotFound(n),_);return r}function requireWritable(t,n){if(!objectOf(t).records.some(e=>e.id===n))throw new e(404,writeNotFound(n),_)}function update(t,n,r){let i=objectOf(t).records.find(e=>e.id===n);if(!i)throw new e(404,writeNotFound(n),_);return Object.assign(i.values,withoutSystemKeys(r)),i.updatedAt=now(),i}function remove(t,n){let{records:r}=objectOf(t),i=r.findIndex(e=>e.id===n);if(i===-1)throw new e(404,writeNotFound(n),_);r.splice(i,1)}function list(e,t,n){let{definition:r,records:i}=objectOf(e);for(let e of t.filters?.rules??[])asTheServerValidates(()=>l(structuredClone(e),{attributes:r.attributes}));assertServedOperators(t.filters,r);let a=Math.min(boundOf(t.limit,`limit`,20),1e3),o=boundOf(t.offset,`offset`,0);if(a===0)return{data:[],page:{hasMore:!1,total:null,countMode:`none`}};let s=n?t.q:void 0,c=i.filter(e=>matchesFilters(e,t.filters,r)).filter(e=>s===void 0||matchesSearch(e,s)).sort(compareRecords(t.sorts,r)),u=c.slice(o,o+a);return{data:u,page:{hasMore:o+u.length<c.length,total:null,countMode:`none`}}}function bulk(t,n,r){let i=r.records??r.updates??r.ids;if(!Array.isArray(i)||i.length>100)throw new e(400,`A bulk request carries at most 100 items.`);let a=withSystemAttributes(objectOf(t).definition);if(n===`bulk-create`){let n=[],r=[];for(let[o,s]of i.entries()){if(!isObject(s)){r.push({index:o,error:`Record data must be an object`});continue}try{asTheServerValidates(()=>c(a,s)),n.push(insert(t,withoutSystemKeys(s)))}catch(t){if(!(t instanceof e))throw t;r.push({index:o,error:t.message})}}return{created:n,errors:r}}if(n===`bulk-update`){let n=[],r=[];for(let{id:o,data:s}of i)try{if(!isObject(s))throw new e(400,`Update data must be an object`,v);requireWritable(t,o),asTheServerValidates(()=>c(a,s)),n.push(update(t,o,s))}catch(t){if(!(t instanceof e))throw t;r.push({id:o,error:t.message,code:t.code??v})}return{updated:n,errors:r}}let o=[],s=[];for(let e of i)try{remove(t,e),o.push(e)}catch{s.push({id:e,error:writeNotFound(e),code:_})}return{deleted:o,errors:s}}function route(t,n,r){let[i,a,o,...s]=n.replace(/^\/+/,``).split(`/`);if(i!==`records`||a===void 0||s.length>0)throw notServed(t,n);let l=decodeURIComponent(a),u=o===void 0?void 0:decodeURIComponent(o),d=isObject(r)?r:{};if(t===`POST`&&u===void 0){let e=isObject(d.data)?d.data:{};return asTheServerValidates(()=>c(withSystemAttributes(objectOf(l).definition),e)),insert(l,withoutSystemKeys(e))}if(t===`POST`&&(u===`list`||u===`search`))return list(l,d,u===`search`);if(t===`POST`&&u?.startsWith(`bulk-`))return bulk(l,u,d);if(u===void 0)throw notServed(t,n);if(t===`GET`)return find(l,u);if(t===`PUT`||t===`PATCH`){if(Object.keys(d).length===0)throw new e(400,`Request body cannot be empty`);return requireWritable(l,u),asTheServerValidates(()=>c(withSystemAttributes(objectOf(l).definition),d)),update(l,u,d)}if(t===`DELETE`)return remove(l,u),null;throw notServed(t,n)}function request(e,t,n){return Promise.resolve().then(()=>(takeFailure(),wire(route(e,t,n===void 0?void 0:wire(n)))))}function takeFailure(){if(s){let{status:e,failure:t}=s;throw s=null,errorFor(e,t.message??`Request failed with status ${e}`,t.code)}}let p={call:(e,t)=>Promise.resolve().then(()=>{takeFailure();let{path:n}=u(e,t??{});throw notServed(e.method,n)}),get:e=>request(`GET`,e),post:(e,t)=>request(`POST`,e,t),patch:(e,t)=>request(`PATCH`,e,t),put:(e,t)=>request(`PUT`,e,t),delete:e=>request(`DELETE`,e),getText:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`GET`,e)}),postRaw:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)}),postMultipart:e=>Promise.resolve().then(()=>{throw takeFailure(),notServed(`POST`,e)})};return{transport:p,get:p.get,post:p.post,definitionOf:e=>objectOf(e).definition,seed:(e,t)=>t.map(t=>insert(e,t)),records:e=>objectOf(e).records,failNextRequestWith(e,t={}){s={status:e,failure:t}}}}function createTestStandards(e){let t=e.bundles.flatMap(e=>e.objectBuilders),n=createInMemoryApi({builders:t}),flatten=(e,t)=>r(n.definitionOf(e),JSON.parse(JSON.stringify(t)));return{db:a(n.transport,t),seed:(e,t)=>n.seed(e,t).map(t=>flatten(e,t)),records:e=>n.records(e).map(t=>flatten(e,t)),failNextRequestWith:(e,t)=>n.failNextRequestWith(e,t)}}export{UnsupportedFilterOperatorError,createTestStandards};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@standards/client",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.411",
|
|
4
4
|
"description": "Public TypeScript client for Standards: declare schema sources with the fluent builders, sync them to a hosted tenant, and operate typed records over the REST API.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"node": ">=22"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@standards/schema": "1.0.0-alpha.
|
|
50
|
+
"@standards/schema": "1.0.0-alpha.411"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/node": "^25.6.0",
|