@devoplus/one-sdk 0.0.0-stage → 0.2.0-next.112

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 (139) hide show
  1. package/CHANGELOG.md +268 -0
  2. package/README.md +894 -2
  3. package/bin/accessRequest.d.mts +96 -0
  4. package/bin/accessRequest.mjs +340 -0
  5. package/bin/appOps.d.mts +97 -0
  6. package/bin/appOps.mjs +336 -0
  7. package/bin/dataCommand.mjs +131 -0
  8. package/bin/devConfig.mjs +132 -0
  9. package/bin/one.mjs +341 -0
  10. package/bin/session.mjs +239 -0
  11. package/dist/agentInput.d.ts +9 -0
  12. package/dist/agentInput.d.ts.map +1 -0
  13. package/dist/agentInput.js +102 -0
  14. package/dist/agentInput.js.map +1 -0
  15. package/dist/agentTools.d.ts +83 -0
  16. package/dist/agentTools.d.ts.map +1 -0
  17. package/dist/agentTools.js +164 -0
  18. package/dist/agentTools.js.map +1 -0
  19. package/dist/ai.d.ts +67 -0
  20. package/dist/ai.d.ts.map +1 -0
  21. package/dist/ai.js +129 -0
  22. package/dist/ai.js.map +1 -0
  23. package/dist/audit.d.ts +21 -0
  24. package/dist/audit.d.ts.map +1 -0
  25. package/dist/audit.js +58 -0
  26. package/dist/audit.js.map +1 -0
  27. package/dist/backend.d.ts +27 -0
  28. package/dist/backend.d.ts.map +1 -0
  29. package/dist/backend.js +63 -0
  30. package/dist/backend.js.map +1 -0
  31. package/dist/cache.d.ts +20 -0
  32. package/dist/cache.d.ts.map +1 -0
  33. package/dist/cache.js +84 -0
  34. package/dist/cache.js.map +1 -0
  35. package/dist/client.d.ts +147 -0
  36. package/dist/client.d.ts.map +1 -0
  37. package/dist/client.js +469 -0
  38. package/dist/client.js.map +1 -0
  39. package/dist/components.d.ts +235 -0
  40. package/dist/components.d.ts.map +1 -0
  41. package/dist/components.js +1491 -0
  42. package/dist/components.js.map +1 -0
  43. package/dist/context.d.ts +110 -0
  44. package/dist/context.d.ts.map +1 -0
  45. package/dist/context.js +126 -0
  46. package/dist/context.js.map +1 -0
  47. package/dist/data/crud.d.ts +74 -0
  48. package/dist/data/crud.d.ts.map +1 -0
  49. package/dist/data/crud.js +614 -0
  50. package/dist/data/crud.js.map +1 -0
  51. package/dist/data/ddl.d.ts +76 -0
  52. package/dist/data/ddl.d.ts.map +1 -0
  53. package/dist/data/ddl.js +362 -0
  54. package/dist/data/ddl.js.map +1 -0
  55. package/dist/data/fold.d.ts +14 -0
  56. package/dist/data/fold.d.ts.map +1 -0
  57. package/dist/data/fold.js +76 -0
  58. package/dist/data/fold.js.map +1 -0
  59. package/dist/data/model.d.ts +113 -0
  60. package/dist/data/model.d.ts.map +1 -0
  61. package/dist/data/model.js +408 -0
  62. package/dist/data/model.js.map +1 -0
  63. package/dist/data/values.d.ts +29 -0
  64. package/dist/data/values.d.ts.map +1 -0
  65. package/dist/data/values.js +152 -0
  66. package/dist/data/values.js.map +1 -0
  67. package/dist/dexa.d.ts +44 -0
  68. package/dist/dexa.d.ts.map +1 -0
  69. package/dist/dexa.js +74 -0
  70. package/dist/dexa.js.map +1 -0
  71. package/dist/dexaCommand.d.ts +116 -0
  72. package/dist/dexaCommand.d.ts.map +1 -0
  73. package/dist/dexaCommand.js +226 -0
  74. package/dist/dexaCommand.js.map +1 -0
  75. package/dist/export/columns.d.ts +62 -0
  76. package/dist/export/columns.d.ts.map +1 -0
  77. package/dist/export/columns.js +127 -0
  78. package/dist/export/columns.js.map +1 -0
  79. package/dist/export/csv.d.ts +10 -0
  80. package/dist/export/csv.d.ts.map +1 -0
  81. package/dist/export/csv.js +30 -0
  82. package/dist/export/csv.js.map +1 -0
  83. package/dist/export/report.d.ts +19 -0
  84. package/dist/export/report.d.ts.map +1 -0
  85. package/dist/export/report.js +91 -0
  86. package/dist/export/report.js.map +1 -0
  87. package/dist/export/response.d.ts +14 -0
  88. package/dist/export/response.d.ts.map +1 -0
  89. package/dist/export/response.js +70 -0
  90. package/dist/export/response.js.map +1 -0
  91. package/dist/export/xlsx.d.ts +15 -0
  92. package/dist/export/xlsx.d.ts.map +1 -0
  93. package/dist/export/xlsx.js +167 -0
  94. package/dist/export/xlsx.js.map +1 -0
  95. package/dist/export/zip.d.ts +7 -0
  96. package/dist/export/zip.d.ts.map +1 -0
  97. package/dist/export/zip.js +83 -0
  98. package/dist/export/zip.js.map +1 -0
  99. package/dist/files.d.ts +52 -0
  100. package/dist/files.d.ts.map +1 -0
  101. package/dist/files.js +137 -0
  102. package/dist/files.js.map +1 -0
  103. package/dist/index.d.ts +31 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +35 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/jobs.d.ts +57 -0
  108. package/dist/jobs.d.ts.map +1 -0
  109. package/dist/jobs.js +157 -0
  110. package/dist/jobs.js.map +1 -0
  111. package/dist/log.d.ts +22 -0
  112. package/dist/log.d.ts.map +1 -0
  113. package/dist/log.js +107 -0
  114. package/dist/log.js.map +1 -0
  115. package/dist/notify.d.ts +41 -0
  116. package/dist/notify.d.ts.map +1 -0
  117. package/dist/notify.js +11 -0
  118. package/dist/notify.js.map +1 -0
  119. package/dist/org.d.ts +184 -0
  120. package/dist/org.d.ts.map +1 -0
  121. package/dist/org.js +114 -0
  122. package/dist/org.js.map +1 -0
  123. package/dist/people.d.ts +39 -0
  124. package/dist/people.d.ts.map +1 -0
  125. package/dist/people.js +88 -0
  126. package/dist/people.js.map +1 -0
  127. package/dist/problem.d.ts +12 -0
  128. package/dist/problem.d.ts.map +1 -0
  129. package/dist/problem.js +33 -0
  130. package/dist/problem.js.map +1 -0
  131. package/dist/runtime.d.ts +92 -0
  132. package/dist/runtime.d.ts.map +1 -0
  133. package/dist/runtime.js +8 -0
  134. package/dist/runtime.js.map +1 -0
  135. package/dist/scenarios.d.ts +125 -0
  136. package/dist/scenarios.d.ts.map +1 -0
  137. package/dist/scenarios.js +251 -0
  138. package/dist/scenarios.js.map +1 -0
  139. package/package.json +55 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export { BackendClient, type BackendClientOptions } from './backend.ts';
2
+ export { BRIDGE_SCRIPT_PATH, DOWNLOAD_MAX_BYTES, NAVIGATION_MAX_ITEMS, NAVIGATION_PERMISSION_RE, ONE_BRIDGE_SCRIPT, ONE_UI_CSS, ROUTE_PATH_RE, TITLE_MAX_LENGTH, UI_CSS_PATH, clientAssetResponse, isRoutePath, navigationFromManifest, scriptResponse, visibleNavigation, type OneBridge, type OneBridgeContext, type OneConfirmOptions, type OneDesign, type OneDownload, type OneNavigationAccess, type OneNavigationItem, type OneToast, type OneToastSeverity, type OneViewport, } from './client.ts';
3
+ export { CONSENT_SCOPES, OneError, awaitsUserConsent, hasPermission, isActingSession, readContext, requirePermission, requireScope, requireServiceScope, requireUser, type OneActingKind, type OneActor, type OneContext, type OneRequestMode, type OneUser, } from './context.ts';
4
+ export { EVENT_DATA_MAX_BYTES, EVENT_MESSAGE_MAX_LENGTH, EVENT_STACK_MAX_LENGTH, describeError, logAudit, logError, logEvent, redact, safeData } from './log.ts';
5
+ export { AUDIT_ACTION_MAX_LENGTH, AUDIT_DATA_MAX_BYTES, AUDIT_TARGET_MAX_LENGTH, buildAuditRequest, recordAudit, type AuditResult } from './audit.ts';
6
+ export { problemResponse } from './problem.ts';
7
+ export { JOB_BODY_MAX_BYTES, JOB_DELAY_MAX_SECONDS, JOB_NAME_RE, JOB_PATH_PREFIX, defineJobs, enqueue, handleJobRequest, type EnqueueOptions, type EnqueueResult, type OneJob, type OneJobHandler, type OneJobKind, type OneJobsDefinition, } from './jobs.ts';
8
+ export { FILES_BINDING, FILE_KEY_MAX_BYTES, FILE_KEY_MAX_LENGTH, FILE_MAX_BYTES, OneFiles, normalizeFileKey, readBoundedBody, sanitizeFileName, type BodySource, type FileBody, type FileInfo, type ListFilesOptions, type ListFilesResult, type PutFileOptions, } from './files.ts';
9
+ export { sendMail, sendPush, sendSms, type MailRequest, type NotifyResult, type PushRequest, type SmsRequest } from './notify.ts';
10
+ export { MAIL_SUBJECT_MAX_LENGTH, MAIL_TEXT_MAX_LENGTH, PUSH_TEXT_MAX_LENGTH, PUSH_TITLE_MAX_LENGTH, SCENARIO_FIELD_MAX_LENGTH, SCENARIO_NOTE_MAX_LENGTH, SMS_NAME_MAX_LENGTH, SMS_TEXT_MAX_LENGTH, approvalRequest, approvalResult, generateSalt, generateVerificationCode, hashVerificationCode, normalizeLink, notify, operationResult, reminder, systemNotice, toMail, toPush, toSms, verificationCode, verificationCodeMatches, type ApprovalOutcome, type ApprovalRequestInput, type ApprovalResultInput, type NotificationLang, type NotifyChannel, type OperationOutcome, type OperationResultInput, type Recipients, type ReminderInput, type ScenarioMessage, type SystemNoticeInput, type VerificationCodeInput, } from './scenarios.ts';
11
+ export { approvalChain, approvalChainReport, getMyOrgContext, getOrgSchema, getOrgUsersWithManagers, getUserGroupMembers, getUserGroupsOfUser, localizedText, managerOf, orgUsersMatching, type ApprovalChainEnd, type ApprovalChainOptions, type ApprovalChainReport, type OrgUsersOptions, type LocalizedText, type ManagerKind, type MyOrgContext, type OrgCompany, type OrgDepartment, type OrgEmployeeType, type OrgPosition, type OrgSchema, type OrgSchemaUser, type OrgTitle, type OrgUserCriteria, type OrgUserGroup, type OrgUserWithManagers, type OrgWorkplace, } from './org.ts';
12
+ export { DEXA_APP_CONTEXT_PARAMETERS, DEXA_KEY_RE, DEXA_MAX_PARAMETERS, DEXA_PARAMETER_NAME_RE, DEXA_PARAMETER_VALUE_MAX_LENGTH, DEXA_RESERVED_PARAMETERS, buildDexaQueryRequest, normalizeDexaQueryResult, queryDexa, type DexaQueryResult, } from './dexa.ts';
13
+ export { DEXA_COMMAND_PARAMETER_VALUE_MAX_LENGTH, IDEMPOTENCY_KEY_RE, buildDexaCommandRequest, getDexaCommandStatus, newIdempotencyKey, normalizeDexaCommandResult, normalizeDexaCommandStatus, normalizeIdempotencyKey, runDexaCommand, type DexaCommandErpView, type DexaCommandOutcome, type DexaCommandResult, type DexaCommandStatus, type DexaCommandStatusOutcome, type DexaCommandStepView, type DexaCommandWarningView, } from './dexaCommand.ts';
14
+ export { CACHE_BINDING, CACHE_KEY_MAX_BYTES, CACHE_MAX_TTL_SECONDS, CACHE_MIN_TTL_SECONDS, CACHE_VALUE_MAX_BYTES, OneCache, normalizeCacheKey, type PutCacheOptions, } from './cache.ts';
15
+ export type { OneApp, OneCacheBinding, OneDatabase, OneDatabaseValue, OneExecutionContext, OneFilesBinding, OneFilesListOptions, OneFilesListResult, OneFilesPutOptions, OneQueryMeta, OneQueryResult, OneStatement, OneStoredFile, OneStoredFileBody, } from './runtime.ts';
16
+ export { AI_INPUT_MAX_LENGTH, AI_INSTRUCTIONS_MAX_LENGTH, AI_LABELS_MAX, AI_LABEL_MAX_LENGTH, AI_MESSAGES_MAX, AI_SCHEMA_MAX_BYTES, AI_SCOPE, AI_TASKS, ai, buildAiRequest, completeAi, normalizeAiResult, type OneAiMessage, type OneAiRequest, type OneAiResult, type OneAiTask, } from './ai.ts';
17
+ export { AGENT_BODY_MAX_BYTES, AGENT_CATALOG_PATH, AGENT_GUIDE_MAX_BYTES, AGENT_GUIDE_PATH, AGENT_INVOKED_BY, AGENT_INVOKED_BY_HEADER, AGENT_PATH_PREFIX, AGENT_TOOL_NAME_RE, agentCatalog, agentManifestResponse, defineAgentTools, handleAgentRequest, type AgentManifest, type AgentToolCall, type AgentToolDefinition, type AgentTools, } from './agentTools.ts';
18
+ export { AGENT_INPUT_KEYWORDS, validateAgentInput, type AgentInputError } from './agentInput.ts';
19
+ export { COMPONENTS_SCRIPT_PATH, FILE_UPLOAD_DEFAULT_ACTION, FILE_UPLOAD_DEFAULT_MAX_BYTES, ONE_COMPONENTS_SCRIPT, ONE_COMPONENT_TAGS, PEOPLE_SEARCH_PATH, TABLE_DEFAULT_PAGE_SIZE, TABLE_MAX_PAGE_SIZE, type OneChartData, type OneChartElement, type OneChartSeries, type OneChoiceOption, type OneComponentEventMap, type OneComponentTag, type OneFieldType, type OneFileUploadElement, type OneFilterChange, type OneFilterElement, type OneFilterField, type OneFormElement, type OneFormErrors, type OneFormField, type OneListResponse, type OneLocalizedText, type OnePerson, type OnePersonPickerElement, type OneTableColumn, type OneTableElement, type OneUploadedFile, } from './components.ts';
20
+ export { PEOPLE_SEARCH_MAX_QUERY, PEOPLE_SEARCH_MAX_RESULTS, PEOPLE_SEARCH_MIN_QUERY, foldPersonText, peopleSearchHandler, searchPeople, type PeopleSearchEnv, type PeopleSearchItem, type PeopleSearchOptions, } from './people.ts';
21
+ export { DATA_CHOICE_VALUE_RE, DATA_FIELD_TYPES, DATA_MAX_CHOICES, DATA_MAX_COLUMNS, DATA_MAX_ENTITIES, DATA_MAX_FIELDS, DATA_NAME_RE, DataModelError, LONG_TEXT_MAX_LENGTH, SYSTEM_COLUMNS, TEXT_MAX_LENGTH, minorToMoney, moneyToMinor, parseDataModel, type DataChoice, type DataEntity, type DataEntityInput, type DataField, type DataFieldInput, type DataFieldType, type DataModel, type DataTitle, type OneDataModel, } from './data/model.ts';
22
+ export { DATA_MODEL_FILE, DATA_SNAPSHOT_FILE, DATA_SNAPSHOT_VERSION, DATA_TYPES_FILE, createEntitySql, diffDataModels, planDataGeneration, renderTypes, type DataChange, type DataDiff, type DataLegacy, type DataPlan, } from './data/ddl.ts';
23
+ export { FOLD_COLUMN_SUFFIX, foldSearchText } from './data/fold.ts';
24
+ export { CRUD_MAX_BODY_BYTES, CRUD_MAX_FILTERS, CRUD_MAX_PAGE_SIZE, CRUD_REPORT_MAX_ROWS, DataValidationError, createCrudHandler, type CrudHandler, type CrudOptions, type CrudPermission, } from './data/crud.ts';
25
+ export type { FieldIssue } from './data/values.ts';
26
+ export { EXPORT_MAX_COLUMNS, EXPORT_MAX_ROWS, type ExportCellType, type ExportColumn, type ExportLang, type ExportOptions, type ExportRow } from './export/columns.ts';
27
+ export { toCsv, type CsvOptions } from './export/csv.ts';
28
+ export { XLSX_CONTENT_TYPE, toXlsx, type XlsxOptions } from './export/xlsx.ts';
29
+ export { EXPORT_DOWNLOAD_MAX_BYTES, contentDisposition, downloadFileName, exportFileName, exportResponse, type ExportFormat } from './export/response.ts';
30
+ export { renderPrintableReport, reportResponse, type PrintableReportOptions } from './export/report.ts';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,35 @@
1
+ // @devoplus/one-sdk — tek giriş. Uygulama şunu yapar:
2
+ // const ctx = readContext(request.headers); const user = requireUser(ctx)
3
+ // const api = new BackendClient({ baseUrl: env.API_BASE, authorization: request.headers.get('authorization') })
4
+ export { BackendClient } from './backend.js';
5
+ export { BRIDGE_SCRIPT_PATH, DOWNLOAD_MAX_BYTES, NAVIGATION_MAX_ITEMS, NAVIGATION_PERMISSION_RE, ONE_BRIDGE_SCRIPT, ONE_UI_CSS, ROUTE_PATH_RE, TITLE_MAX_LENGTH, UI_CSS_PATH, clientAssetResponse, isRoutePath, navigationFromManifest, scriptResponse, visibleNavigation, } from './client.js';
6
+ export { CONSENT_SCOPES, OneError, awaitsUserConsent, hasPermission, isActingSession, readContext, requirePermission, requireScope, requireServiceScope, requireUser, } from './context.js';
7
+ export { EVENT_DATA_MAX_BYTES, EVENT_MESSAGE_MAX_LENGTH, EVENT_STACK_MAX_LENGTH, describeError, logAudit, logError, logEvent, redact, safeData } from './log.js';
8
+ export { AUDIT_ACTION_MAX_LENGTH, AUDIT_DATA_MAX_BYTES, AUDIT_TARGET_MAX_LENGTH, buildAuditRequest, recordAudit } from './audit.js';
9
+ export { problemResponse } from './problem.js';
10
+ export { JOB_BODY_MAX_BYTES, JOB_DELAY_MAX_SECONDS, JOB_NAME_RE, JOB_PATH_PREFIX, defineJobs, enqueue, handleJobRequest, } from './jobs.js';
11
+ export { FILES_BINDING, FILE_KEY_MAX_BYTES, FILE_KEY_MAX_LENGTH, FILE_MAX_BYTES, OneFiles, normalizeFileKey, readBoundedBody, sanitizeFileName, } from './files.js';
12
+ export { sendMail, sendPush, sendSms } from './notify.js';
13
+ export { MAIL_SUBJECT_MAX_LENGTH, MAIL_TEXT_MAX_LENGTH, PUSH_TEXT_MAX_LENGTH, PUSH_TITLE_MAX_LENGTH, SCENARIO_FIELD_MAX_LENGTH, SCENARIO_NOTE_MAX_LENGTH, SMS_NAME_MAX_LENGTH, SMS_TEXT_MAX_LENGTH, approvalRequest, approvalResult, generateSalt, generateVerificationCode, hashVerificationCode, normalizeLink, notify, operationResult, reminder, systemNotice, toMail, toPush, toSms, verificationCode, verificationCodeMatches, } from './scenarios.js';
14
+ export { approvalChain, approvalChainReport, getMyOrgContext, getOrgSchema, getOrgUsersWithManagers, getUserGroupMembers, getUserGroupsOfUser, localizedText, managerOf, orgUsersMatching, } from './org.js';
15
+ export { DEXA_APP_CONTEXT_PARAMETERS, DEXA_KEY_RE, DEXA_MAX_PARAMETERS, DEXA_PARAMETER_NAME_RE, DEXA_PARAMETER_VALUE_MAX_LENGTH, DEXA_RESERVED_PARAMETERS, buildDexaQueryRequest, normalizeDexaQueryResult, queryDexa, } from './dexa.js';
16
+ export { DEXA_COMMAND_PARAMETER_VALUE_MAX_LENGTH, IDEMPOTENCY_KEY_RE, buildDexaCommandRequest, getDexaCommandStatus, newIdempotencyKey, normalizeDexaCommandResult, normalizeDexaCommandStatus, normalizeIdempotencyKey, runDexaCommand, } from './dexaCommand.js';
17
+ export { CACHE_BINDING, CACHE_KEY_MAX_BYTES, CACHE_MAX_TTL_SECONDS, CACHE_MIN_TTL_SECONDS, CACHE_VALUE_MAX_BYTES, OneCache, normalizeCacheKey, } from './cache.js';
18
+ export { AI_INPUT_MAX_LENGTH, AI_INSTRUCTIONS_MAX_LENGTH, AI_LABELS_MAX, AI_LABEL_MAX_LENGTH, AI_MESSAGES_MAX, AI_SCHEMA_MAX_BYTES, AI_SCOPE, AI_TASKS, ai, buildAiRequest, completeAi, normalizeAiResult, } from './ai.js';
19
+ export { AGENT_BODY_MAX_BYTES, AGENT_CATALOG_PATH, AGENT_GUIDE_MAX_BYTES, AGENT_GUIDE_PATH, AGENT_INVOKED_BY, AGENT_INVOKED_BY_HEADER, AGENT_PATH_PREFIX, AGENT_TOOL_NAME_RE, agentCatalog, agentManifestResponse, defineAgentTools, handleAgentRequest, } from './agentTools.js';
20
+ export { AGENT_INPUT_KEYWORDS, validateAgentInput } from './agentInput.js';
21
+ export { COMPONENTS_SCRIPT_PATH, FILE_UPLOAD_DEFAULT_ACTION, FILE_UPLOAD_DEFAULT_MAX_BYTES, ONE_COMPONENTS_SCRIPT, ONE_COMPONENT_TAGS, PEOPLE_SEARCH_PATH, TABLE_DEFAULT_PAGE_SIZE, TABLE_MAX_PAGE_SIZE, } from './components.js';
22
+ export { PEOPLE_SEARCH_MAX_QUERY, PEOPLE_SEARCH_MAX_RESULTS, PEOPLE_SEARCH_MIN_QUERY, foldPersonText, peopleSearchHandler, searchPeople, } from './people.js';
23
+ // ── Tanımlayıcı veri modeli ve kayıt işlemleri (D-84) ─────────────────────────────────────────────────────────────
24
+ export { DATA_CHOICE_VALUE_RE, DATA_FIELD_TYPES, DATA_MAX_CHOICES, DATA_MAX_COLUMNS, DATA_MAX_ENTITIES, DATA_MAX_FIELDS, DATA_NAME_RE, DataModelError, LONG_TEXT_MAX_LENGTH, SYSTEM_COLUMNS, TEXT_MAX_LENGTH, minorToMoney, moneyToMinor, parseDataModel, } from './data/model.js';
25
+ export { DATA_MODEL_FILE, DATA_SNAPSHOT_FILE, DATA_SNAPSHOT_VERSION, DATA_TYPES_FILE, createEntitySql, diffDataModels, planDataGeneration, renderTypes, } from './data/ddl.js';
26
+ // Türkçe katlanmış arama (S15): elle yazılan SQL bir metin alanını güncellerken gölgesini (`<alan>_fold`) bununla yazar.
27
+ export { FOLD_COLUMN_SUFFIX, foldSearchText } from './data/fold.js';
28
+ export { CRUD_MAX_BODY_BYTES, CRUD_MAX_FILTERS, CRUD_MAX_PAGE_SIZE, CRUD_REPORT_MAX_ROWS, DataValidationError, createCrudHandler, } from './data/crud.js';
29
+ // ── Rapor ve dışa aktarma (D-85) ──────────────────────────────────────────────────────────────────────────────────
30
+ export { EXPORT_MAX_COLUMNS, EXPORT_MAX_ROWS } from './export/columns.js';
31
+ export { toCsv } from './export/csv.js';
32
+ export { XLSX_CONTENT_TYPE, toXlsx } from './export/xlsx.js';
33
+ export { EXPORT_DOWNLOAD_MAX_BYTES, contentDisposition, downloadFileName, exportFileName, exportResponse } from './export/response.js';
34
+ export { renderPrintableReport, reportResponse } from './export/report.js';
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/jobs.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ import { type OneContext } from './context.ts';
2
+ import type { OneExecutionContext } from './runtime.ts';
3
+ /** Zamanlama / kuyruk adı — manifest `jobs` kuralıyla birebir (SDK testi iki ifadeyi karşılaştırır). */
4
+ export declare const JOB_NAME_RE: RegExp;
5
+ /** Bırakılan ileti gövdesinin tavanı (JSON baytı). */
6
+ export declare const JOB_BODY_MAX_BYTES: number;
7
+ /** Bırakılan iletinin en çok gecikmesi (saniye; 24 saat). */
8
+ export declare const JOB_DELAY_MAX_SECONDS = 86400;
9
+ /** Platformun iş çağrısı yolunun öneki. */
10
+ export declare const JOB_PATH_PREFIX = "/__one/jobs/";
11
+ export type OneJobKind = 'schedule' | 'queue';
12
+ export interface OneJob<Body = unknown> {
13
+ /** Platformun verdiği kimlik; yeniden denemelerde AYNIDIR (tekrar eleme anahtarı). */
14
+ id: string;
15
+ name: string;
16
+ kind: OneJobKind;
17
+ /** Kaçıncı deneme (1'den başlar). */
18
+ attempt: number;
19
+ /** Kuyruk: `enqueue` ile bırakılan gövde. Zamanlamada `undefined`. */
20
+ body: Body | undefined;
21
+ /** Zamanlama: tetiklenen dakikanın başı (ISO 8601, UTC). */
22
+ scheduledTime?: string;
23
+ /** Kuyruk: iletinin bırakıldığı an (ISO 8601, UTC). */
24
+ enqueuedAt?: string;
25
+ }
26
+ /** İş işleyicisi. `ctx` platform bağlamıdır (`readContext`); `execution` yanıttan sonra sürecek işi bildirir. */
27
+ export type OneJobHandler<Env = unknown, Body = unknown> = (job: OneJob<Body>, env: Env, ctx: OneContext, execution: OneExecutionContext) => unknown | Promise<unknown>;
28
+ export interface OneJobsDefinition<Env = unknown> {
29
+ schedules?: Readonly<Record<string, OneJobHandler<Env>>>;
30
+ queues?: Readonly<Record<string, OneJobHandler<Env>>>;
31
+ }
32
+ /**
33
+ * İşleyicileri tanımlar ve döner. Adlar manifest `jobs` beyanıyla aynı olmalıdır (biçim burada da denetlenir; geçersiz
34
+ * ad `ONE-SDK-E-070` ile hemen fırlar). Son tanım `handleJobRequest`'in varsayılanıdır.
35
+ */
36
+ export declare function defineJobs<Env = unknown>(definition: OneJobsDefinition<Env>): OneJobsDefinition<Env>;
37
+ /**
38
+ * Platformun iş çağrısını işler. İstek `/__one/jobs/…` değilse `null` döner (uygulama kendi yönlendirmesine geçer).
39
+ * Bu yolda HER ZAMAN bir yanıt üretilir: bilinmeyen tür/ad, POST olmayan yöntem ya da platform işareti taşımayan istek
40
+ * 404'tür (işleyici dışarıdan tetiklenemez); işleyici sonucu başlıktaki sözleşmeye göre 200 / 4xx / 500 olur.
41
+ */
42
+ export declare function handleJobRequest<Env>(request: Request, env: Env, execution: OneExecutionContext, definition?: OneJobsDefinition<Env> | null): Promise<Response> | null;
43
+ export interface EnqueueOptions {
44
+ /** İletinin işleyiciye verilmeden önce bekleyeceği süre (saniye, 0-86.400). */
45
+ delaySeconds?: number;
46
+ }
47
+ export interface EnqueueResult {
48
+ /** Platformun verdiği ileti kimliği — işleyicide `job.id` olarak gelir. */
49
+ id: string;
50
+ }
51
+ /**
52
+ * Kuyruğa ileti bırakır. `name` manifest `jobs.queues` içinde beyan edilmiş olmalıdır (beyan edilmemiş ad 404). Gövde
53
+ * JSON'a çevrilebilir olmalı ve ≤ 64 KiB'dir. Kim adına bırakıldığını platform istekten damgalar; gövdeye kimlik
54
+ * yazmayın. Vekalet / Yerine Görüntüle oturumunda, uygulama bu oturumlarda yazmaya açık değilse reddedilir (403).
55
+ */
56
+ export declare function enqueue(name: string, body: unknown, options?: EnqueueOptions): Promise<EnqueueResult>;
57
+ //# sourceMappingURL=jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,wGAAwG;AACxG,eAAO,MAAM,WAAW,QAA2B,CAAA;AACnD,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAC3C,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAC3C,2CAA2C;AAC3C,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAK7C,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,CAAA;AAE7C,MAAM,WAAW,MAAM,CAAC,IAAI,GAAG,OAAO;IACpC,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,iHAAiH;AACjH,MAAM,MAAM,aAAa,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,CACzD,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EACjB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,mBAAmB,KAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/B,MAAM,WAAW,iBAAiB,CAAC,GAAG,GAAG,OAAO;IAC9C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CACtD;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAG,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAOpG;AAQD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,mBAAmB,EAC9B,UAAU,GAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAkD,GACtF,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAI1B;AAgDD,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyC/G"}
package/dist/jobs.js ADDED
@@ -0,0 +1,157 @@
1
+ // Kuyruk ve zamanlanmış görev (D-80). Uygulama yalnız İŞLEYİCİ yazar; işi platform tetikler:
2
+ // - Zamanlama: manifest `jobs.schedules[] { name, cron, timeZone? }` → platform vadesi gelince uygulamayı çağırır.
3
+ // - Kuyruk: uygulama `enqueue(ad, gövde, { delaySeconds })` ile ileti bırakır → platform işleyiciyi çağırır.
4
+ // Platform çağrısı `POST /__one/jobs/<schedule|queue>/<ad>` adresine gelir; bu yol internetten KAPALIDIR (yalnız platform
5
+ // ulaşır). Uygulamanın giriş noktası önce `handleJobRequest`'i dener:
6
+ //
7
+ // const jobs = defineJobs<Env>({ schedules: { 'weekly-reminder': async (job, env, ctx) => { … } }, queues: { … } })
8
+ // export default { fetch(request, env, ctx) { return handleJobRequest(request, env, ctx) ?? app(request, env, ctx) } }
9
+ //
10
+ // Yanıt sözleşmesi: işleyici dönerse 200 (iş tamam). İşleyici 4xx bir `OneError` fırlatırsa iş KALICI olarak başarısız
11
+ // sayılır (yeniden denenmez). Başka her hata 500'dür ve platform işi geri çekilmeyle yeniden dener (kuyrukta manifest
12
+ // `maxRetries`, zamanlamada 3 kez). Aynı iş birden çok kez gelebilir: `job.id` her denemede AYNIDIR — kalıcı bir yan
13
+ // etki yazıyorsanız bu kimlikle tekrarı eleyin (ör. tekil sütun).
14
+ //
15
+ // Kimlik: kuyruk işi, iletiyi bırakan kullanıcının `sub`'unu BİLGİ olarak taşır (`ctx.user`); uygulama izinleri ve
16
+ // yönetici bilgisi işe TAŞINMAZ (`hasPermission` false) — izin kararını iletiyi bırakırken verin. Zamanlanmış iş
17
+ // kullanıcısızdır (`ctx.user` null). Her iki işte de `ctx.mode` `'job'`tur.
18
+ //
19
+ // Devoplus servisleri (C6): işte servis çağrısı KİŞİ adına değil UYGULAMANIN kimliğiyle yapılır. Kullanılabilecek servisler
20
+ // manifest `jobs.services` ile beyan edilir (e-posta · SMS · mobil bildirim · DEXA okuma · yapay zekâ) ve kurulumda portal
21
+ // yöneticisi ONAYLAMADIKÇA açılmaz (onaysız çağrı 403). DEXA'ya yazma bu yolla açılmaz. Kişiye bağlı davranış yoktur:
22
+ // "kendime gönder" yok (alıcı açıkça verilir), denetim kaydında aktör uygulamadır.
23
+ import { OneError, readContext } from './context.js';
24
+ import { problemResponse } from './problem.js';
25
+ /** Zamanlama / kuyruk adı — manifest `jobs` kuralıyla birebir (SDK testi iki ifadeyi karşılaştırır). */
26
+ export const JOB_NAME_RE = /^[a-z][a-z0-9-]{1,39}$/;
27
+ /** Bırakılan ileti gövdesinin tavanı (JSON baytı). */
28
+ export const JOB_BODY_MAX_BYTES = 64 * 1024;
29
+ /** Bırakılan iletinin en çok gecikmesi (saniye; 24 saat). */
30
+ export const JOB_DELAY_MAX_SECONDS = 86_400;
31
+ /** Platformun iş çağrısı yolunun öneki. */
32
+ export const JOB_PATH_PREFIX = '/__one/jobs/';
33
+ /** Kuyruğa ileti bırakmanın ayrılmış adresi — platform içinde karşılanır, dışarı çıkmaz. */
34
+ const QUEUE_ENDPOINT = 'https://platform.one.internal/v1/queues/';
35
+ let registered = null;
36
+ /**
37
+ * İşleyicileri tanımlar ve döner. Adlar manifest `jobs` beyanıyla aynı olmalıdır (biçim burada da denetlenir; geçersiz
38
+ * ad `ONE-SDK-E-070` ile hemen fırlar). Son tanım `handleJobRequest`'in varsayılanıdır.
39
+ */
40
+ export function defineJobs(definition) {
41
+ for (const group of [definition.schedules, definition.queues]) {
42
+ for (const name of Object.keys(group ?? {}))
43
+ if (!JOB_NAME_RE.test(name))
44
+ throw new OneError(400, 'ONE-SDK-E-070', `"${name}" geçerli bir iş adı değil (küçük harfle başlar; küçük harf, rakam, tire; 2-40 karakter).`);
45
+ }
46
+ registered = definition;
47
+ return definition;
48
+ }
49
+ function notFound() {
50
+ return problemResponse(new OneError(404, 'ONE-SDK-E-075', 'İş bulunamadı.'));
51
+ }
52
+ const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
53
+ /**
54
+ * Platformun iş çağrısını işler. İstek `/__one/jobs/…` değilse `null` döner (uygulama kendi yönlendirmesine geçer).
55
+ * Bu yolda HER ZAMAN bir yanıt üretilir: bilinmeyen tür/ad, POST olmayan yöntem ya da platform işareti taşımayan istek
56
+ * 404'tür (işleyici dışarıdan tetiklenemez); işleyici sonucu başlıktaki sözleşmeye göre 200 / 4xx / 500 olur.
57
+ */
58
+ export function handleJobRequest(request, env, execution, definition = registered) {
59
+ const { pathname } = new URL(request.url);
60
+ if (!pathname.startsWith(JOB_PATH_PREFIX))
61
+ return null;
62
+ return run(request, env, execution, definition, pathname.slice(JOB_PATH_PREFIX.length));
63
+ }
64
+ async function run(request, env, execution, definition, rest) {
65
+ // Platform çağrısı işaretlidir (`X-One-Auth: job`); internet isteğinde bu başlığı kapı yeniden yazar.
66
+ if (request.method !== 'POST' || request.headers.get('x-one-auth') !== 'job')
67
+ return notFound();
68
+ const m = /^(schedule|queue)\/([^/]+)$/.exec(rest);
69
+ if (!m)
70
+ return notFound();
71
+ const kind = m[1];
72
+ const name = m[2];
73
+ if (!JOB_NAME_RE.test(name))
74
+ return notFound();
75
+ const group = kind === 'schedule' ? definition?.schedules : definition?.queues;
76
+ const handler = group && Object.hasOwn(group, name) ? group[name] : undefined;
77
+ if (!handler)
78
+ return notFound();
79
+ let ctx;
80
+ try {
81
+ ctx = readContext(request.headers);
82
+ let payload;
83
+ try {
84
+ payload = await request.json();
85
+ }
86
+ catch {
87
+ throw new OneError(400, 'ONE-SDK-E-076', 'İş çağrısının gövdesi JSON değil.');
88
+ }
89
+ if (!isRecord(payload))
90
+ throw new OneError(400, 'ONE-SDK-E-076', 'İş çağrısının gövdesi JSON değil.');
91
+ const attemptHeader = Number(request.headers.get('x-one-job-attempt'));
92
+ const job = {
93
+ id: typeof payload.id === 'string' ? payload.id : (request.headers.get('x-one-job-id') ?? ''),
94
+ name,
95
+ kind,
96
+ attempt: Number.isInteger(attemptHeader) && attemptHeader > 0 ? attemptHeader : typeof payload.attempt === 'number' ? payload.attempt : 1,
97
+ body: kind === 'queue' ? payload.body : undefined,
98
+ ...(typeof payload.scheduledTime === 'string' ? { scheduledTime: payload.scheduledTime } : {}),
99
+ ...(typeof payload.enqueuedAt === 'string' ? { enqueuedAt: payload.enqueuedAt } : {}),
100
+ };
101
+ await handler(job, env, ctx, execution);
102
+ return new Response(JSON.stringify({ ok: true }), { status: 200, headers: { 'content-type': 'application/json; charset=utf-8' } });
103
+ }
104
+ catch (error) {
105
+ // 4xx OneError kalıcıdır (platform yeniden denemez); diğer her şey 500 → yeniden denenir. İç mesaj dışarı sızmaz.
106
+ return problemResponse(error, ctx);
107
+ }
108
+ }
109
+ /**
110
+ * Kuyruğa ileti bırakır. `name` manifest `jobs.queues` içinde beyan edilmiş olmalıdır (beyan edilmemiş ad 404). Gövde
111
+ * JSON'a çevrilebilir olmalı ve ≤ 64 KiB'dir. Kim adına bırakıldığını platform istekten damgalar; gövdeye kimlik
112
+ * yazmayın. Vekalet / Yerine Görüntüle oturumunda, uygulama bu oturumlarda yazmaya açık değilse reddedilir (403).
113
+ */
114
+ export async function enqueue(name, body, options = {}) {
115
+ if (!JOB_NAME_RE.test(name))
116
+ throw new OneError(400, 'ONE-SDK-E-070', `"${name}" geçerli bir kuyruk adı değil.`);
117
+ let serialized;
118
+ try {
119
+ serialized = JSON.stringify(body);
120
+ }
121
+ catch {
122
+ serialized = undefined;
123
+ }
124
+ if (serialized === undefined)
125
+ throw new OneError(400, 'ONE-SDK-E-071', 'İleti gövdesi JSON\'a çevrilebilir bir değer olmalı.');
126
+ if (new TextEncoder().encode(serialized).byteLength > JOB_BODY_MAX_BYTES)
127
+ throw new OneError(413, 'ONE-SDK-E-072', `İleti gövdesi ${JOB_BODY_MAX_BYTES} bayt sınırını aşıyor.`);
128
+ const { delaySeconds } = options;
129
+ if (delaySeconds !== undefined && (!Number.isInteger(delaySeconds) || delaySeconds < 0 || delaySeconds > JOB_DELAY_MAX_SECONDS))
130
+ throw new OneError(400, 'ONE-SDK-E-073', `delaySeconds 0-${JOB_DELAY_MAX_SECONDS} arası tam sayı olmalı.`);
131
+ let res;
132
+ try {
133
+ res = await fetch(`${QUEUE_ENDPOINT}${encodeURIComponent(name)}/messages`, {
134
+ method: 'POST',
135
+ headers: { 'content-type': 'application/json' },
136
+ body: `{"body":${serialized}${delaySeconds !== undefined ? `,"delaySeconds":${delaySeconds}` : ''}}`,
137
+ });
138
+ }
139
+ catch {
140
+ throw new OneError(503, 'ONE-SDK-E-074', 'İleti kuyruğa bırakılamadı; biraz sonra yeniden deneyin.');
141
+ }
142
+ let parsed = null;
143
+ try {
144
+ parsed = await res.json();
145
+ }
146
+ catch {
147
+ /* gövdesiz yanıt */
148
+ }
149
+ const problem = isRecord(parsed) ? parsed : {};
150
+ if (!res.ok) {
151
+ throw new OneError(res.status, typeof problem.code === 'string' ? problem.code : `HTTP-${res.status}`, typeof problem.detail === 'string' ? problem.detail : 'İleti kuyruğa bırakılamadı.');
152
+ }
153
+ if (typeof problem.id !== 'string')
154
+ throw new OneError(502, 'ONE-SDK-E-074', 'Kuyruk yanıtı beklenen biçimde değil.');
155
+ return { id: problem.id };
156
+ }
157
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
package/dist/log.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { type OneContext } from './context.ts';
2
+ type Level = 'info' | 'warn' | 'error';
3
+ export declare const EVENT_MESSAGE_MAX_LENGTH = 1000;
4
+ export declare const EVENT_DATA_MAX_BYTES: number;
5
+ export declare const EVENT_STACK_MAX_LENGTH = 4000;
6
+ /** Sır kokan anahtarların değerini maskeler; döngü ve aşırı derinlik güvenli. Girdiyi DEĞİŞTİRMEZ. */
7
+ export declare function redact(value: unknown, depth?: number, seen?: WeakSet<object>): unknown;
8
+ /** Hata → kayda yazılabilir özet. `OneError` kodu ve durumu korunur; yığın kırpılır. */
9
+ export declare function describeError(error: unknown): Record<string, unknown>;
10
+ /** `data` → maskelenmiş, boyutu sınırlı değer (JSON'a çevrilemezse ya da büyükse yerine özeti). */
11
+ export declare function safeData(data: unknown): unknown;
12
+ export declare function logEvent(ctx: OneContext, level: Level, message: string, data?: Record<string, unknown>): void;
13
+ /** Beklenmeyen hata olayı: `error` alanı ad · ileti · (kırpılmış) yığın taşır; `data` aynı korumadan geçer. */
14
+ export declare function logError(ctx: OneContext, message: string, error: unknown, data?: Record<string, unknown>): void;
15
+ /**
16
+ * Yapısal denetim izi. Vekalet / Yerine Görüntüle oturumunda `actor` işlemi FİİLEN yapan kişidir (vekil), `onBehalfOf`
17
+ * adına işlem yapılan kişi, `sessionKind` oturum türü — Devoplus denetim günlüğüyle aynı düzen (ActorSub = vekil,
18
+ * TargetSub = temsil edilen). Vekilin kimliği bilinmiyorsa `actor` boş kalır; temsil edilen kişi aktör YAZILMAZ.
19
+ */
20
+ export declare function logAudit(ctx: OneContext, action: string, target?: string, data?: Record<string, unknown>): void;
21
+ export {};
22
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAYA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAExD,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAEtC,eAAO,MAAM,wBAAwB,OAAQ,CAAA;AAC7C,eAAO,MAAM,oBAAoB,QAAW,CAAA;AAC5C,eAAO,MAAM,sBAAsB,OAAQ,CAAA;AAM3C,sGAAsG;AACtG,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,EAAE,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GAAG,OAAO,CAchG;AAMD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUrE;AAED,mGAAmG;AACnG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAY/C;AAYD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE7G;AAED,+GAA+G;AAC/G,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAK/G;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAM/G"}
package/dist/log.js ADDED
@@ -0,0 +1,107 @@
1
+ // Event Logger ≠ Audit Logger (referans belge, K). İkisi ayrı fonksiyondur; karıştırılmaz.
2
+ // event: hata/uyarı/çalışma-zamanı olayı — "sistem ne yaptı"
3
+ // audit: kritik KULLANICI işlemi — "kim, ne zaman, neyi yaptı"; aktör zorunludur
4
+ // İkisi de yapısal console çıktısıdır. Kalıcılık: platform her kurulumun olay günlüğünü AÇAR (D-45; manifest
5
+ // `observability.headSamplingRate`) — satırlar platform tarafında tutulur ve platform ekibince kurulum adıyla sorgulanır.
6
+ // Denetim kaydının KALICI hâli `recordAudit` (audit.ts, D-36): aynı satırı yazar ve ayrıca backend `One/services/audit`a
7
+ // gönderir; `logAudit` yalnız yerel iz ister isteyene kalır.
8
+ //
9
+ // Koruma (D-45): `data` içindeki sır kokan anahtarların (parola · token · secret · authorization · cookie · api key ·
10
+ // private key) değeri yazılmadan "[gizli]" olur — günlük, sırrın sızdığı en olağan yerdir. `data` JSON'u
11
+ // `EVENT_DATA_MAX_BYTES`'ı aşarsa yerine boyutu yazılır: olay günlüğü bir çağrıda en çok 256 KB olay tutar ve
12
+ // aşan kısım sessizce düşer — tek bir büyük nesne aynı çağrının sonraki hata satırını kaybettirmesin.
13
+ import { OneError } from './context.js';
14
+ export const EVENT_MESSAGE_MAX_LENGTH = 1_000;
15
+ export const EVENT_DATA_MAX_BYTES = 8 * 1024;
16
+ export const EVENT_STACK_MAX_LENGTH = 4_000;
17
+ const REDACTED = '[gizli]';
18
+ const MAX_DEPTH = 6;
19
+ const SENSITIVE_KEY = /passw(or)?d|passphrase|^pass$|secret|token|authorization|cookie|api[-_]?key|private[-_]?key|credential|parola|sifre|şifre/i;
20
+ /** Sır kokan anahtarların değerini maskeler; döngü ve aşırı derinlik güvenli. Girdiyi DEĞİŞTİRMEZ. */
21
+ export function redact(value, depth = 0, seen = new WeakSet()) {
22
+ if (value === null || typeof value !== 'object') {
23
+ if (typeof value === 'bigint')
24
+ return value.toString();
25
+ if (typeof value === 'function' || typeof value === 'symbol')
26
+ return undefined;
27
+ return value;
28
+ }
29
+ if (seen.has(value))
30
+ return '[döngü]';
31
+ if (depth >= MAX_DEPTH)
32
+ return '[derin]';
33
+ seen.add(value);
34
+ if (value instanceof Error)
35
+ return describeError(value);
36
+ if (Array.isArray(value))
37
+ return value.map((v) => redact(v, depth + 1, seen));
38
+ const out = {};
39
+ for (const [k, v] of Object.entries(value))
40
+ out[k] = SENSITIVE_KEY.test(k) ? REDACTED : redact(v, depth + 1, seen);
41
+ return out;
42
+ }
43
+ function clip(text, max) {
44
+ return text.length > max ? `${text.slice(0, max)}…` : text;
45
+ }
46
+ /** Hata → kayda yazılabilir özet. `OneError` kodu ve durumu korunur; yığın kırpılır. */
47
+ export function describeError(error) {
48
+ if (error instanceof OneError)
49
+ return { name: 'OneError', code: error.code, status: error.status, message: clip(error.message, EVENT_MESSAGE_MAX_LENGTH) };
50
+ if (error instanceof Error) {
51
+ return {
52
+ name: error.name,
53
+ message: clip(error.message, EVENT_MESSAGE_MAX_LENGTH),
54
+ ...(error.stack ? { stack: clip(error.stack, EVENT_STACK_MAX_LENGTH) } : {}),
55
+ };
56
+ }
57
+ return { name: typeof error, message: clip(String(error), EVENT_MESSAGE_MAX_LENGTH) };
58
+ }
59
+ /** `data` → maskelenmiş, boyutu sınırlı değer (JSON'a çevrilemezse ya da büyükse yerine özeti). */
60
+ export function safeData(data) {
61
+ if (data === undefined)
62
+ return undefined;
63
+ let text;
64
+ const masked = redact(data);
65
+ try {
66
+ text = JSON.stringify(masked);
67
+ }
68
+ catch {
69
+ return { unserializable: true };
70
+ }
71
+ if (text === undefined)
72
+ return undefined;
73
+ const bytes = new TextEncoder().encode(text).byteLength;
74
+ return bytes > EVENT_DATA_MAX_BYTES ? { truncated: true, bytes } : masked;
75
+ }
76
+ function base(ctx) {
77
+ return { app: ctx.app, portalKey: ctx.portalKey, portalId: ctx.portalId, at: new Date().toISOString() };
78
+ }
79
+ function emit(level, line) {
80
+ if (level === 'error')
81
+ console.error(line);
82
+ else if (level === 'warn')
83
+ console.warn(line);
84
+ else
85
+ console.log(line);
86
+ }
87
+ export function logEvent(ctx, level, message, data) {
88
+ emit(level, JSON.stringify({ kind: 'event', level, message: clip(message, EVENT_MESSAGE_MAX_LENGTH), ...base(ctx), data: safeData(data) }));
89
+ }
90
+ /** Beklenmeyen hata olayı: `error` alanı ad · ileti · (kırpılmış) yığın taşır; `data` aynı korumadan geçer. */
91
+ export function logError(ctx, message, error, data) {
92
+ emit('error', JSON.stringify({ kind: 'event', level: 'error', message: clip(message, EVENT_MESSAGE_MAX_LENGTH), ...base(ctx), error: describeError(error), data: safeData(data) }));
93
+ }
94
+ /**
95
+ * Yapısal denetim izi. Vekalet / Yerine Görüntüle oturumunda `actor` işlemi FİİLEN yapan kişidir (vekil), `onBehalfOf`
96
+ * adına işlem yapılan kişi, `sessionKind` oturum türü — Devoplus denetim günlüğüyle aynı düzen (ActorSub = vekil,
97
+ * TargetSub = temsil edilen). Vekilin kimliği bilinmiyorsa `actor` boş kalır; temsil edilen kişi aktör YAZILMAZ.
98
+ */
99
+ export function logAudit(ctx, action, target, data) {
100
+ if (!ctx.user)
101
+ throw new Error('Audit kaydı aktörsüz yazılamaz.');
102
+ const acting = ctx.actor
103
+ ? { actor: ctx.actor.sub || null, onBehalfOf: ctx.user.sub, sessionKind: ctx.actor.kind }
104
+ : { actor: ctx.user.sub };
105
+ console.log(JSON.stringify({ kind: 'audit', action, target, ...acting, ...base(ctx), data: safeData(data) }));
106
+ }
107
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { BackendClient } from './backend.ts';
2
+ export interface MailRequest {
3
+ /** Alıcı kullanıcıların `sub` değerleri. */
4
+ toSubjects: readonly string[];
5
+ /** Alıcıların org kullanıcı kimlikleri (legacy `User._id`; ör. `approvalChain` çıktısı). */
6
+ toOrgUserIds?: readonly string[];
7
+ subject: string;
8
+ /** Düz metin; sunucu markalı şablona sarar, HTML kaçışlar. */
9
+ text: string;
10
+ }
11
+ export interface SmsRequest {
12
+ toSubjects: readonly string[];
13
+ toOrgUserIds?: readonly string[];
14
+ text: string;
15
+ }
16
+ /** Mobil bildirim (D-55): alıcı kuralları e-posta/SMS ile aynı; başlık ≤ 100, metin ≤ 300 karakter (sunucu sınırı). */
17
+ export interface PushRequest {
18
+ toSubjects: readonly string[];
19
+ toOrgUserIds?: readonly string[];
20
+ /** Bildirim başlığı (düz metin). */
21
+ title: string;
22
+ /** Bildirim metni (düz metin). */
23
+ text: string;
24
+ }
25
+ export interface NotifyResult {
26
+ queued: number;
27
+ /**
28
+ * `sub` = istekteki kimlik metni (`sub` ya da org kimliği). Gerekçeler: invalid-subject · invalid-org-user ·
29
+ * not-in-portal · inactive · no-address · no-phone · preference · rate-limited · not-deliverable (yalnız push: kişinin
30
+ * bildirim tercihi kapalı YA DA mobil kimliği çözülemedi — sunucu ikisini ayırt edemez).
31
+ */
32
+ skipped: Array<{
33
+ sub: string;
34
+ reason: string;
35
+ }>;
36
+ }
37
+ export declare function sendMail(api: BackendClient, request: MailRequest): Promise<NotifyResult>;
38
+ export declare function sendSms(api: BackendClient, request: SmsRequest): Promise<NotifyResult>;
39
+ /** `POST One/services/push` (scope `push.execute`). Kapalı ortamda/portalda `OneError` (`code` = `ONE-APP-E-029`) fırlatır. */
40
+ export declare function sendPush(api: BackendClient, request: PushRequest): Promise<NotifyResult>;
41
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,4FAA4F;IAC5F,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,uHAAuH;AACvH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAExF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAEtF;AAED,+HAA+H;AAC/H,wBAAgB,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAExF"}
package/dist/notify.js ADDED
@@ -0,0 +1,11 @@
1
+ export function sendMail(api, request) {
2
+ return api.request('One/services/mail', { method: 'POST', body: JSON.stringify(request) });
3
+ }
4
+ export function sendSms(api, request) {
5
+ return api.request('One/services/sms', { method: 'POST', body: JSON.stringify(request) });
6
+ }
7
+ /** `POST One/services/push` (scope `push.execute`). Kapalı ortamda/portalda `OneError` (`code` = `ONE-APP-E-029`) fırlatır. */
8
+ export function sendPush(api, request) {
9
+ return api.request('One/services/push', { method: 'POST', body: JSON.stringify(request) });
10
+ }
11
+ //# sourceMappingURL=notify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAoDA,MAAM,UAAU,QAAQ,CAAC,GAAkB,EAAE,OAAoB;IAC/D,OAAO,GAAG,CAAC,OAAO,CAAe,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAC1G,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAkB,EAAE,OAAmB;IAC7D,OAAO,GAAG,CAAC,OAAO,CAAe,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AACzG,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,QAAQ,CAAC,GAAkB,EAAE,OAAoB;IAC/D,OAAO,GAAG,CAAC,OAAO,CAAe,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAC1G,CAAC"}