@develit-io/backend-sdk 5.21.3 → 5.21.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2,8 +2,7 @@ import { sql } from 'drizzle-orm';
2
2
  import { timestamp, uuid, pgEnum, text as text$1 } from 'drizzle-orm/pg-core';
3
3
  import { integer, text } from 'drizzle-orm/sqlite-core';
4
4
  import { COUNTRY_CODES_2, CURRENCY_CODES, BANK_CODES } from '@develit-io/general-codes';
5
- import { toSnakeCase } from '@std/text';
6
- import { KVNamespace, D1Database, Queue, R2Bucket } from 'alchemy/cloudflare';
5
+ export { E as ENVIRONMENT } from './shared/backend-sdk.DXRpnctc.mjs';
7
6
  import * as z from 'zod/v4/core';
8
7
  import 'http-status-codes';
9
8
  import { createError } from 'h3';
@@ -56,160 +55,6 @@ const bankAccountPostgres = {
56
55
  countryCode: bankAccountCountryCodeEnum().$type().notNull()
57
56
  };
58
57
 
59
- const composeD1Arguments = ({
60
- resourceName
61
- }) => {
62
- return {
63
- name: resourceName,
64
- primaryLocationHint: "weur"
65
- // TODO: It's possible that it will take care of migrations as well
66
- };
67
- };
68
-
69
- const composeKvArguments = ({
70
- resourceName
71
- }) => {
72
- return {
73
- title: resourceName
74
- };
75
- };
76
-
77
- const composeQueueArguments = ({
78
- resourceName,
79
- deliveryDelay = 5,
80
- messageRetentionPeriod = 259200
81
- }) => {
82
- return {
83
- name: resourceName,
84
- settings: {
85
- deliveryDelay,
86
- messageRetentionPeriod
87
- }
88
- };
89
- };
90
-
91
- const composeR2Arguments = ({
92
- resourceName,
93
- storageClass = "Standard"
94
- }) => {
95
- return {
96
- name: resourceName,
97
- jurisdiction: "eu",
98
- locationHint: "weur",
99
- storageClass
100
- };
101
- };
102
-
103
- const composeBindingName = ({
104
- resource,
105
- resourceName,
106
- bindingName
107
- }) => {
108
- const convertedBindingName = bindingName ? toSnakeCase(bindingName) : `${toSnakeCase(resourceName)}_${resource}`;
109
- return convertedBindingName.toUpperCase();
110
- };
111
- const composeIdentifierName = ({
112
- resource,
113
- resourceName
114
- }) => {
115
- return `${resourceName}-${resource}`;
116
- };
117
- const composeResourceName = ({
118
- project,
119
- environment,
120
- resourceName
121
- }) => {
122
- return `${project}-${resourceName}-${environment}`;
123
- };
124
-
125
- class Infrastructure {
126
- project;
127
- environment;
128
- constructor({
129
- project,
130
- environment
131
- }) {
132
- this.project = project;
133
- this.environment = environment;
134
- }
135
- /**
136
- * Creates an instance of Cloudflare KV.
137
- */
138
- async kv(options) {
139
- const { resourceName } = options;
140
- return await KVNamespace(
141
- composeIdentifierName({ resourceName, resource: "kv" }),
142
- composeKvArguments({
143
- resourceName: composeResourceName({
144
- project: this.project,
145
- environment: this.environment,
146
- resourceName
147
- })
148
- })
149
- );
150
- }
151
- /**
152
- * Creates an instance of Cloudflare D1.
153
- */
154
- async d1(options) {
155
- const { resourceName } = options;
156
- return await D1Database(
157
- composeIdentifierName({ resourceName, resource: "d1" }),
158
- composeD1Arguments({
159
- resourceName: composeResourceName({
160
- project: this.project,
161
- environment: this.environment,
162
- resourceName
163
- })
164
- })
165
- );
166
- }
167
- /**
168
- * Creates an instance of Cloudflare Queue.
169
- */
170
- async queue(options) {
171
- const { resourceName, deliveryDelay, messageRetentionPeriod } = options;
172
- return await Queue(
173
- composeIdentifierName({ resourceName, resource: "queue" }),
174
- composeQueueArguments({
175
- resourceName: composeResourceName({
176
- project: this.project,
177
- environment: this.environment,
178
- resourceName
179
- }),
180
- deliveryDelay,
181
- messageRetentionPeriod
182
- })
183
- );
184
- }
185
- /**
186
- * Creates an instance of Cloudflare R2.
187
- */
188
- async r2(options) {
189
- const { resourceName, storageClass } = options;
190
- return await R2Bucket(
191
- composeIdentifierName({ resourceName, resource: "r2" }),
192
- composeR2Arguments({
193
- resourceName: composeResourceName({
194
- project: this.project,
195
- environment: this.environment,
196
- resourceName
197
- }),
198
- storageClass
199
- })
200
- );
201
- }
202
- }
203
-
204
- const ENVIRONMENT = ["dev", "test", "staging", "production"];
205
-
206
- const validateEnvironment = (environment) => {
207
- if (ENVIRONMENT.includes(environment)) {
208
- return environment;
209
- }
210
- return Number(environment);
211
- };
212
-
213
58
  const ibanZodSchema = new z.$ZodString({
214
59
  type: "string",
215
60
  checks: [
@@ -874,4 +719,4 @@ function develitWorker(Worker) {
874
719
  return DevelitWorker;
875
720
  }
876
721
 
877
- export { DatabaseTransaction, ENVIRONMENT, Infrastructure, RPCResponse, action, bankAccount, bankAccountBankCodeEnum, bankAccountCountryCodeEnum, bankAccountCurrencyEnum, bankAccountPostgres, base, basePostgres, calculateExponentialBackoff, cloudflareQueue, composeBindingName, createAuditLogWriter, createInternalError, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getDrizzlePgConfig, getPgCredentials, getPgDatabaseIdFromWrangler, getPgLocalConnectionString, handleAction, handleActionResponse, ibanZodSchema, isInternalError, paginationQuerySchema, paginationSchema, service, swiftZodSchema, useFetch, useResult, useResultSync, uuidv4, validateEnvironment };
722
+ export { DatabaseTransaction, RPCResponse, action, bankAccount, bankAccountBankCodeEnum, bankAccountCountryCodeEnum, bankAccountCurrencyEnum, bankAccountPostgres, base, basePostgres, calculateExponentialBackoff, cloudflareQueue, createAuditLogWriter, createInternalError, defineCommand, derivePortFromId, develitWorker, durableObjectNamespaceIdFromName, first, firstOrError, getD1Credentials, getD1DatabaseIdFromWrangler, getDrizzleD1Config, getDrizzlePgConfig, getPgCredentials, getPgDatabaseIdFromWrangler, getPgLocalConnectionString, handleAction, handleActionResponse, ibanZodSchema, isInternalError, paginationQuerySchema, paginationSchema, service, swiftZodSchema, useFetch, useResult, useResultSync, uuidv4 };
@@ -0,0 +1,167 @@
1
+ 'use strict';
2
+
3
+ const text = require('@std/text');
4
+ const cloudflare = require('alchemy/cloudflare');
5
+ const environment_consts = require('../shared/backend-sdk.BdcrYpFD.cjs');
6
+
7
+ const composeD1Arguments = ({
8
+ resourceName
9
+ }) => {
10
+ return {
11
+ name: resourceName,
12
+ primaryLocationHint: "weur"
13
+ // TODO: It's possible that it will take care of migrations as well
14
+ };
15
+ };
16
+
17
+ const composeKvArguments = ({
18
+ resourceName
19
+ }) => {
20
+ return {
21
+ title: resourceName
22
+ };
23
+ };
24
+
25
+ const composeQueueArguments = ({
26
+ resourceName,
27
+ deliveryDelay = 5,
28
+ messageRetentionPeriod = 259200
29
+ }) => {
30
+ return {
31
+ name: resourceName,
32
+ settings: {
33
+ deliveryDelay,
34
+ messageRetentionPeriod
35
+ }
36
+ };
37
+ };
38
+
39
+ const composeR2Arguments = ({
40
+ resourceName,
41
+ storageClass = "Standard"
42
+ }) => {
43
+ return {
44
+ name: resourceName,
45
+ jurisdiction: "eu",
46
+ locationHint: "weur",
47
+ storageClass
48
+ };
49
+ };
50
+
51
+ const composeBindingName = ({
52
+ resource,
53
+ resourceName,
54
+ bindingName
55
+ }) => {
56
+ const convertedBindingName = bindingName ? text.toSnakeCase(bindingName) : `${text.toSnakeCase(resourceName)}_${resource}`;
57
+ return convertedBindingName.toUpperCase();
58
+ };
59
+ const composeIdentifierName = ({
60
+ resource,
61
+ resourceName
62
+ }) => {
63
+ return `${resourceName}-${resource}`;
64
+ };
65
+ const composeResourceName = ({
66
+ project,
67
+ environment,
68
+ resourceName
69
+ }) => {
70
+ return `${project}-${resourceName}-${environment}`;
71
+ };
72
+
73
+ class Infrastructure {
74
+ project;
75
+ environment;
76
+ constructor({
77
+ project,
78
+ environment
79
+ }) {
80
+ this.project = project;
81
+ this.environment = environment;
82
+ }
83
+ /**
84
+ * Creates an instance of Cloudflare KV.
85
+ */
86
+ async kv(options) {
87
+ const { resourceName } = options;
88
+ return await cloudflare.KVNamespace(
89
+ composeIdentifierName({ resourceName, resource: "kv" }),
90
+ composeKvArguments({
91
+ resourceName: composeResourceName({
92
+ project: this.project,
93
+ environment: this.environment,
94
+ resourceName
95
+ })
96
+ })
97
+ );
98
+ }
99
+ /**
100
+ * Creates an instance of Cloudflare D1.
101
+ */
102
+ async d1(options) {
103
+ const { resourceName } = options;
104
+ return await cloudflare.D1Database(
105
+ composeIdentifierName({ resourceName, resource: "d1" }),
106
+ composeD1Arguments({
107
+ resourceName: composeResourceName({
108
+ project: this.project,
109
+ environment: this.environment,
110
+ resourceName
111
+ })
112
+ })
113
+ );
114
+ }
115
+ /**
116
+ * Creates an instance of Cloudflare Queue.
117
+ */
118
+ async queue(options) {
119
+ const { resourceName, deliveryDelay, messageRetentionPeriod } = options;
120
+ return await cloudflare.Queue(
121
+ composeIdentifierName({ resourceName, resource: "queue" }),
122
+ composeQueueArguments({
123
+ resourceName: composeResourceName({
124
+ project: this.project,
125
+ environment: this.environment,
126
+ resourceName
127
+ }),
128
+ deliveryDelay,
129
+ messageRetentionPeriod
130
+ })
131
+ );
132
+ }
133
+ /**
134
+ * Creates an instance of Cloudflare R2.
135
+ */
136
+ async r2(options) {
137
+ const { resourceName, storageClass } = options;
138
+ return await cloudflare.R2Bucket(
139
+ composeIdentifierName({ resourceName, resource: "r2" }),
140
+ composeR2Arguments({
141
+ resourceName: composeResourceName({
142
+ project: this.project,
143
+ environment: this.environment,
144
+ resourceName
145
+ }),
146
+ storageClass
147
+ })
148
+ );
149
+ }
150
+ }
151
+
152
+ const validateEnvironment = (environment) => {
153
+ if (environment_consts.ENVIRONMENT.includes(environment)) {
154
+ return environment;
155
+ }
156
+ return Number(environment);
157
+ };
158
+
159
+ exports.Infrastructure = Infrastructure;
160
+ exports.composeBindingName = composeBindingName;
161
+ exports.composeD1Arguments = composeD1Arguments;
162
+ exports.composeIdentifierName = composeIdentifierName;
163
+ exports.composeKvArguments = composeKvArguments;
164
+ exports.composeQueueArguments = composeQueueArguments;
165
+ exports.composeR2Arguments = composeR2Arguments;
166
+ exports.composeResourceName = composeResourceName;
167
+ exports.validateEnvironment = validateEnvironment;
@@ -0,0 +1,115 @@
1
+ import { P as Project, E as Environment } from '../shared/backend-sdk.B4rrbKNu.cjs';
2
+ import { KVNamespace, D1Database, Queue, R2Bucket } from 'alchemy/cloudflare';
3
+
4
+ type Resource = 'kv' | 'd1' | 'queue' | 'r2' | 'worker' | 'service' | 'orchestrator';
5
+
6
+ declare class Infrastructure {
7
+ private project;
8
+ private environment;
9
+ constructor({ project, environment, }: {
10
+ project: Project;
11
+ environment: Environment;
12
+ });
13
+ /**
14
+ * Creates an instance of Cloudflare KV.
15
+ */
16
+ kv(options: {
17
+ /**
18
+ * Name of the KV. Do not include the 'kv' prefix.
19
+ */
20
+ resourceName: string;
21
+ }): Promise<KVNamespace>;
22
+ /**
23
+ * Creates an instance of Cloudflare D1.
24
+ */
25
+ d1(options: {
26
+ /**
27
+ * Name of the D1. Do not include the 'd1' prefix.
28
+ */
29
+ resourceName: string;
30
+ }): Promise<D1Database>;
31
+ /**
32
+ * Creates an instance of Cloudflare Queue.
33
+ */
34
+ queue(options: {
35
+ /**
36
+ * Name of the Queue. Do not include the 'queue' prefix.
37
+ */
38
+ resourceName: string;
39
+ /**
40
+ * The number of seconds to delay delivery of messages to the queue.
41
+ */
42
+ deliveryDelay?: number;
43
+ /**
44
+ * The number of seconds a message will remain in the queue before being deleted.
45
+ */
46
+ messageRetentionPeriod?: number;
47
+ }): Promise<Queue<unknown>>;
48
+ /**
49
+ * Creates an instance of Cloudflare R2.
50
+ */
51
+ r2(options: {
52
+ /**
53
+ * Name of the R2. Do not include the 'r2' prefix.
54
+ */
55
+ resourceName: string;
56
+ /**
57
+ * The storage class for the R2 bucket.
58
+ */
59
+ storageClass?: 'Standard' | 'InfrequentAccess';
60
+ }): Promise<R2Bucket>;
61
+ }
62
+
63
+ declare const composeD1Arguments: ({ resourceName, }: {
64
+ resourceName: string;
65
+ }) => {
66
+ name: string;
67
+ primaryLocationHint: "weur";
68
+ };
69
+
70
+ declare const composeKvArguments: ({ resourceName, }: {
71
+ resourceName: string;
72
+ }) => {
73
+ title: string;
74
+ };
75
+
76
+ declare const composeQueueArguments: ({ resourceName, deliveryDelay, messageRetentionPeriod, }: {
77
+ resourceName: string;
78
+ deliveryDelay?: number;
79
+ messageRetentionPeriod?: number;
80
+ }) => {
81
+ name: string;
82
+ settings: {
83
+ deliveryDelay: number;
84
+ messageRetentionPeriod: number;
85
+ };
86
+ };
87
+
88
+ declare const composeR2Arguments: ({ resourceName, storageClass, }: {
89
+ resourceName: string;
90
+ storageClass?: "Standard" | "InfrequentAccess";
91
+ }) => {
92
+ name: string;
93
+ jurisdiction: "eu";
94
+ locationHint: string;
95
+ storageClass: "Standard" | "InfrequentAccess";
96
+ };
97
+
98
+ declare const composeBindingName: ({ resource, resourceName, bindingName, }: {
99
+ resource: Resource;
100
+ resourceName: string;
101
+ bindingName?: string;
102
+ }) => string;
103
+ declare const composeIdentifierName: ({ resource, resourceName, }: {
104
+ resource: Resource;
105
+ resourceName: string;
106
+ }) => string;
107
+ declare const composeResourceName: ({ project, environment, resourceName, }: {
108
+ project: Project;
109
+ environment: Environment;
110
+ resourceName: string;
111
+ }) => string;
112
+
113
+ declare const validateEnvironment: (environment: string) => Environment;
114
+
115
+ export { Infrastructure, composeBindingName, composeD1Arguments, composeIdentifierName, composeKvArguments, composeQueueArguments, composeR2Arguments, composeResourceName, validateEnvironment };
@@ -0,0 +1,115 @@
1
+ import { P as Project, E as Environment } from '../shared/backend-sdk.B4rrbKNu.mjs';
2
+ import { KVNamespace, D1Database, Queue, R2Bucket } from 'alchemy/cloudflare';
3
+
4
+ type Resource = 'kv' | 'd1' | 'queue' | 'r2' | 'worker' | 'service' | 'orchestrator';
5
+
6
+ declare class Infrastructure {
7
+ private project;
8
+ private environment;
9
+ constructor({ project, environment, }: {
10
+ project: Project;
11
+ environment: Environment;
12
+ });
13
+ /**
14
+ * Creates an instance of Cloudflare KV.
15
+ */
16
+ kv(options: {
17
+ /**
18
+ * Name of the KV. Do not include the 'kv' prefix.
19
+ */
20
+ resourceName: string;
21
+ }): Promise<KVNamespace>;
22
+ /**
23
+ * Creates an instance of Cloudflare D1.
24
+ */
25
+ d1(options: {
26
+ /**
27
+ * Name of the D1. Do not include the 'd1' prefix.
28
+ */
29
+ resourceName: string;
30
+ }): Promise<D1Database>;
31
+ /**
32
+ * Creates an instance of Cloudflare Queue.
33
+ */
34
+ queue(options: {
35
+ /**
36
+ * Name of the Queue. Do not include the 'queue' prefix.
37
+ */
38
+ resourceName: string;
39
+ /**
40
+ * The number of seconds to delay delivery of messages to the queue.
41
+ */
42
+ deliveryDelay?: number;
43
+ /**
44
+ * The number of seconds a message will remain in the queue before being deleted.
45
+ */
46
+ messageRetentionPeriod?: number;
47
+ }): Promise<Queue<unknown>>;
48
+ /**
49
+ * Creates an instance of Cloudflare R2.
50
+ */
51
+ r2(options: {
52
+ /**
53
+ * Name of the R2. Do not include the 'r2' prefix.
54
+ */
55
+ resourceName: string;
56
+ /**
57
+ * The storage class for the R2 bucket.
58
+ */
59
+ storageClass?: 'Standard' | 'InfrequentAccess';
60
+ }): Promise<R2Bucket>;
61
+ }
62
+
63
+ declare const composeD1Arguments: ({ resourceName, }: {
64
+ resourceName: string;
65
+ }) => {
66
+ name: string;
67
+ primaryLocationHint: "weur";
68
+ };
69
+
70
+ declare const composeKvArguments: ({ resourceName, }: {
71
+ resourceName: string;
72
+ }) => {
73
+ title: string;
74
+ };
75
+
76
+ declare const composeQueueArguments: ({ resourceName, deliveryDelay, messageRetentionPeriod, }: {
77
+ resourceName: string;
78
+ deliveryDelay?: number;
79
+ messageRetentionPeriod?: number;
80
+ }) => {
81
+ name: string;
82
+ settings: {
83
+ deliveryDelay: number;
84
+ messageRetentionPeriod: number;
85
+ };
86
+ };
87
+
88
+ declare const composeR2Arguments: ({ resourceName, storageClass, }: {
89
+ resourceName: string;
90
+ storageClass?: "Standard" | "InfrequentAccess";
91
+ }) => {
92
+ name: string;
93
+ jurisdiction: "eu";
94
+ locationHint: string;
95
+ storageClass: "Standard" | "InfrequentAccess";
96
+ };
97
+
98
+ declare const composeBindingName: ({ resource, resourceName, bindingName, }: {
99
+ resource: Resource;
100
+ resourceName: string;
101
+ bindingName?: string;
102
+ }) => string;
103
+ declare const composeIdentifierName: ({ resource, resourceName, }: {
104
+ resource: Resource;
105
+ resourceName: string;
106
+ }) => string;
107
+ declare const composeResourceName: ({ project, environment, resourceName, }: {
108
+ project: Project;
109
+ environment: Environment;
110
+ resourceName: string;
111
+ }) => string;
112
+
113
+ declare const validateEnvironment: (environment: string) => Environment;
114
+
115
+ export { Infrastructure, composeBindingName, composeD1Arguments, composeIdentifierName, composeKvArguments, composeQueueArguments, composeR2Arguments, composeResourceName, validateEnvironment };
@@ -0,0 +1,115 @@
1
+ import { P as Project, E as Environment } from '../shared/backend-sdk.B4rrbKNu.js';
2
+ import { KVNamespace, D1Database, Queue, R2Bucket } from 'alchemy/cloudflare';
3
+
4
+ type Resource = 'kv' | 'd1' | 'queue' | 'r2' | 'worker' | 'service' | 'orchestrator';
5
+
6
+ declare class Infrastructure {
7
+ private project;
8
+ private environment;
9
+ constructor({ project, environment, }: {
10
+ project: Project;
11
+ environment: Environment;
12
+ });
13
+ /**
14
+ * Creates an instance of Cloudflare KV.
15
+ */
16
+ kv(options: {
17
+ /**
18
+ * Name of the KV. Do not include the 'kv' prefix.
19
+ */
20
+ resourceName: string;
21
+ }): Promise<KVNamespace>;
22
+ /**
23
+ * Creates an instance of Cloudflare D1.
24
+ */
25
+ d1(options: {
26
+ /**
27
+ * Name of the D1. Do not include the 'd1' prefix.
28
+ */
29
+ resourceName: string;
30
+ }): Promise<D1Database>;
31
+ /**
32
+ * Creates an instance of Cloudflare Queue.
33
+ */
34
+ queue(options: {
35
+ /**
36
+ * Name of the Queue. Do not include the 'queue' prefix.
37
+ */
38
+ resourceName: string;
39
+ /**
40
+ * The number of seconds to delay delivery of messages to the queue.
41
+ */
42
+ deliveryDelay?: number;
43
+ /**
44
+ * The number of seconds a message will remain in the queue before being deleted.
45
+ */
46
+ messageRetentionPeriod?: number;
47
+ }): Promise<Queue<unknown>>;
48
+ /**
49
+ * Creates an instance of Cloudflare R2.
50
+ */
51
+ r2(options: {
52
+ /**
53
+ * Name of the R2. Do not include the 'r2' prefix.
54
+ */
55
+ resourceName: string;
56
+ /**
57
+ * The storage class for the R2 bucket.
58
+ */
59
+ storageClass?: 'Standard' | 'InfrequentAccess';
60
+ }): Promise<R2Bucket>;
61
+ }
62
+
63
+ declare const composeD1Arguments: ({ resourceName, }: {
64
+ resourceName: string;
65
+ }) => {
66
+ name: string;
67
+ primaryLocationHint: "weur";
68
+ };
69
+
70
+ declare const composeKvArguments: ({ resourceName, }: {
71
+ resourceName: string;
72
+ }) => {
73
+ title: string;
74
+ };
75
+
76
+ declare const composeQueueArguments: ({ resourceName, deliveryDelay, messageRetentionPeriod, }: {
77
+ resourceName: string;
78
+ deliveryDelay?: number;
79
+ messageRetentionPeriod?: number;
80
+ }) => {
81
+ name: string;
82
+ settings: {
83
+ deliveryDelay: number;
84
+ messageRetentionPeriod: number;
85
+ };
86
+ };
87
+
88
+ declare const composeR2Arguments: ({ resourceName, storageClass, }: {
89
+ resourceName: string;
90
+ storageClass?: "Standard" | "InfrequentAccess";
91
+ }) => {
92
+ name: string;
93
+ jurisdiction: "eu";
94
+ locationHint: string;
95
+ storageClass: "Standard" | "InfrequentAccess";
96
+ };
97
+
98
+ declare const composeBindingName: ({ resource, resourceName, bindingName, }: {
99
+ resource: Resource;
100
+ resourceName: string;
101
+ bindingName?: string;
102
+ }) => string;
103
+ declare const composeIdentifierName: ({ resource, resourceName, }: {
104
+ resource: Resource;
105
+ resourceName: string;
106
+ }) => string;
107
+ declare const composeResourceName: ({ project, environment, resourceName, }: {
108
+ project: Project;
109
+ environment: Environment;
110
+ resourceName: string;
111
+ }) => string;
112
+
113
+ declare const validateEnvironment: (environment: string) => Environment;
114
+
115
+ export { Infrastructure, composeBindingName, composeD1Arguments, composeIdentifierName, composeKvArguments, composeQueueArguments, composeR2Arguments, composeResourceName, validateEnvironment };