@paakd/config 0.0.2

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 (140) hide show
  1. package/dist/src/index.js +20 -0
  2. package/gen/go/addresses/Address.pkl.go +10 -0
  3. package/gen/go/addresses/Addresses.pkl.go +43 -0
  4. package/gen/go/addresses/BillingAddress.pkl.go +8 -0
  5. package/gen/go/addresses/Field.pkl.go +43 -0
  6. package/gen/go/addresses/addressgroup/AddressGroup.pkl.go +43 -0
  7. package/gen/go/addresses/fieldtype/FieldType.pkl.go +61 -0
  8. package/gen/go/addresses/init.pkl.go +11 -0
  9. package/gen/go/cloudflare/Cloudflare.pkl.go +37 -0
  10. package/gen/go/cloudflare/R2Bucket.pkl.go +22 -0
  11. package/gen/go/cloudflare/TerraformBackend.pkl.go +16 -0
  12. package/gen/go/cloudflare/Turnstile.pkl.go +8 -0
  13. package/gen/go/cloudflare/init.pkl.go +11 -0
  14. package/gen/go/db/DB.pkl.go +43 -0
  15. package/gen/go/db/DBConnection.pkl.go +12 -0
  16. package/gen/go/db/init.pkl.go +9 -0
  17. package/gen/go/dune/Dune.pkl.go +47 -0
  18. package/gen/go/dune/init.pkl.go +8 -0
  19. package/gen/go/enterprise/Enterprise.pkl.go +118 -0
  20. package/gen/go/enterprise/init.pkl.go +8 -0
  21. package/gen/go/enterprise/taxonomyversion/TaxonomyVersion.pkl.go +37 -0
  22. package/gen/go/redis/Redis.pkl.go +41 -0
  23. package/gen/go/redis/init.pkl.go +8 -0
  24. package/gen/go/shared/Build.pkl.go +46 -0
  25. package/gen/go/shared/Shared.pkl.go +35 -0
  26. package/gen/go/shared/init.pkl.go +9 -0
  27. package/gen/go/worker/Worker.pkl.go +55 -0
  28. package/gen/go/worker/WorkerConnect.pkl.go +6 -0
  29. package/gen/go/worker/init.pkl.go +9 -0
  30. package/gen/js/development/basket_eco_packages_config_addresses.pkl.ts +106 -0
  31. package/gen/js/development/basket_eco_packages_config_checkout.pkl.ts +73 -0
  32. package/gen/js/development/basket_eco_packages_config_cloudflare.pkl.ts +69 -0
  33. package/gen/js/development/basket_eco_packages_config_cms.pkl.ts +119 -0
  34. package/gen/js/development/basket_eco_packages_config_db.pkl.ts +47 -0
  35. package/gen/js/development/basket_eco_packages_config_dune.pkl.ts +36 -0
  36. package/gen/js/development/basket_eco_packages_config_enterprise.pkl.ts +290 -0
  37. package/gen/js/development/basket_eco_packages_config_feature.pkl.ts +58 -0
  38. package/gen/js/development/basket_eco_packages_config_redis.pkl.ts +30 -0
  39. package/gen/js/development/basket_eco_packages_config_renderer_development_cms.pkl.ts +28 -0
  40. package/gen/js/development/basket_eco_packages_config_shared.pkl.ts +73 -0
  41. package/gen/js/development/basket_eco_packages_config_worker.pkl.ts +53 -0
  42. package/gen/js/production/basket_eco_packages_config_addresses.pkl.ts +106 -0
  43. package/gen/js/production/basket_eco_packages_config_checkout.pkl.ts +73 -0
  44. package/gen/js/production/basket_eco_packages_config_cloudflare.pkl.ts +69 -0
  45. package/gen/js/production/basket_eco_packages_config_cms.pkl.ts +119 -0
  46. package/gen/js/production/basket_eco_packages_config_db.pkl.ts +47 -0
  47. package/gen/js/production/basket_eco_packages_config_dune.pkl.ts +36 -0
  48. package/gen/js/production/basket_eco_packages_config_enterprise.pkl.ts +290 -0
  49. package/gen/js/production/basket_eco_packages_config_feature.pkl.ts +58 -0
  50. package/gen/js/production/basket_eco_packages_config_kiosk_host.pkl.ts +72 -0
  51. package/gen/js/production/basket_eco_packages_config_redis.pkl.ts +30 -0
  52. package/gen/js/production/basket_eco_packages_config_renderer_production_cms.pkl.ts +28 -0
  53. package/gen/js/production/basket_eco_packages_config_renderer_production_dune_config.pkl.ts +29 -0
  54. package/gen/js/production/basket_eco_packages_config_renderer_production_workflow_config.pkl.ts +29 -0
  55. package/gen/js/production/basket_eco_packages_config_renderer_staging_dune_config.pkl.ts +29 -0
  56. package/gen/js/production/basket_eco_packages_config_shared.pkl.ts +73 -0
  57. package/gen/js/production/basket_eco_packages_config_worker.pkl.ts +49 -0
  58. package/gen/js/staging/basket_eco_packages_config_addresses.pkl.ts +106 -0
  59. package/gen/js/staging/basket_eco_packages_config_checkout.pkl.ts +77 -0
  60. package/gen/js/staging/basket_eco_packages_config_cloudflare.pkl.ts +74 -0
  61. package/gen/js/staging/basket_eco_packages_config_cms.pkl.ts +119 -0
  62. package/gen/js/staging/basket_eco_packages_config_db.pkl.ts +47 -0
  63. package/gen/js/staging/basket_eco_packages_config_dune.pkl.ts +40 -0
  64. package/gen/js/staging/basket_eco_packages_config_enterprise.pkl.ts +290 -0
  65. package/gen/js/staging/basket_eco_packages_config_feature.pkl.ts +58 -0
  66. package/gen/js/staging/basket_eco_packages_config_redis.pkl.ts +30 -0
  67. package/gen/js/staging/basket_eco_packages_config_renderer_staging_cms.pkl.ts +28 -0
  68. package/gen/js/staging/basket_eco_packages_config_renderer_staging_dune_config.pkl.ts +29 -0
  69. package/gen/js/staging/basket_eco_packages_config_renderer_staging_workflow_config.pkl.ts +29 -0
  70. package/gen/js/staging/basket_eco_packages_config_shared.pkl.ts +69 -0
  71. package/gen/js/staging/basket_eco_packages_config_worker.pkl.ts +53 -0
  72. package/package.json +66 -0
  73. package/src/addresses.ts +90 -0
  74. package/src/authorization/policy.conf +15 -0
  75. package/src/authorization/policy.csv +26 -0
  76. package/src/chk.spec.ts +61 -0
  77. package/src/chk.ts +88 -0
  78. package/src/cms.test.ts +52 -0
  79. package/src/cms.ts +65 -0
  80. package/src/index.ts +4 -0
  81. package/src/pkl/PklProject +21 -0
  82. package/src/pkl/development/Addresses.pkl +2114 -0
  83. package/src/pkl/development/CMS.pkl +37 -0
  84. package/src/pkl/development/Checkout.pkl +32 -0
  85. package/src/pkl/development/Cloudflare.pkl +20 -0
  86. package/src/pkl/development/Db.pkl +14 -0
  87. package/src/pkl/development/Dune.pkl +12 -0
  88. package/src/pkl/development/Enterprise.pkl +158 -0
  89. package/src/pkl/development/Feature.pkl +4 -0
  90. package/src/pkl/development/Redis.pkl +6 -0
  91. package/src/pkl/development/Shared.pkl +16 -0
  92. package/src/pkl/development/Worker.pkl +43 -0
  93. package/src/pkl/development/renderer/CMS.pkl +59 -0
  94. package/src/pkl/production/Addresses.pkl +2114 -0
  95. package/src/pkl/production/CMS.pkl +34 -0
  96. package/src/pkl/production/Checkout.pkl +32 -0
  97. package/src/pkl/production/Cloudflare.pkl +20 -0
  98. package/src/pkl/production/Db.pkl +14 -0
  99. package/src/pkl/production/Dune.pkl +12 -0
  100. package/src/pkl/production/Enterprise.pkl +158 -0
  101. package/src/pkl/production/Feature.pkl +8 -0
  102. package/src/pkl/production/KioskHost.pkl +5 -0
  103. package/src/pkl/production/Redis.pkl +6 -0
  104. package/src/pkl/production/Shared.pkl +15 -0
  105. package/src/pkl/production/Worker.pkl +43 -0
  106. package/src/pkl/production/renderer/CMS.pkl +59 -0
  107. package/src/pkl/production/renderer/Dune.pkl +52 -0
  108. package/src/pkl/production/renderer/Feature.pkl +51 -0
  109. package/src/pkl/production/renderer/Workflow.pkl +51 -0
  110. package/src/pkl/staging/Addresses.pkl +2114 -0
  111. package/src/pkl/staging/CMS.pkl +35 -0
  112. package/src/pkl/staging/Checkout.pkl +32 -0
  113. package/src/pkl/staging/Cloudflare.pkl +20 -0
  114. package/src/pkl/staging/Db.pkl +14 -0
  115. package/src/pkl/staging/Dune.pkl +12 -0
  116. package/src/pkl/staging/Enterprise.pkl +158 -0
  117. package/src/pkl/staging/Feature.pkl +8 -0
  118. package/src/pkl/staging/Redis.pkl +6 -0
  119. package/src/pkl/staging/Shared.pkl +16 -0
  120. package/src/pkl/staging/Worker.pkl +43 -0
  121. package/src/pkl/staging/renderer/CMS.pkl +59 -0
  122. package/src/pkl/staging/renderer/Dune.pkl +52 -0
  123. package/src/pkl/staging/renderer/Feature.pkl +51 -0
  124. package/src/pkl/staging/renderer/Workflow.pkl +51 -0
  125. package/src/pkl/tmpl/AddressesTmpl.pkl +44 -0
  126. package/src/pkl/tmpl/CMSTmpl.pkl +64 -0
  127. package/src/pkl/tmpl/CheckoutTmpl.pkl +34 -0
  128. package/src/pkl/tmpl/CloudflareTmpl.pkl +33 -0
  129. package/src/pkl/tmpl/DbTmpl.pkl +18 -0
  130. package/src/pkl/tmpl/DuneTmpl.pkl +124 -0
  131. package/src/pkl/tmpl/EnterpriseTmpl.pkl +105 -0
  132. package/src/pkl/tmpl/FeatureTmpl.pkl +90 -0
  133. package/src/pkl/tmpl/KioskHostTmpl.pkl +194 -0
  134. package/src/pkl/tmpl/RedisTmpl.pkl +9 -0
  135. package/src/pkl/tmpl/SharedTmpl.pkl +40 -0
  136. package/src/pkl/tmpl/WorkerTmpl.pkl +27 -0
  137. package/src/pkl-reader/main.go +167 -0
  138. package/src/shared.ts +65 -0
  139. package/src/vault.spec.ts +62 -0
  140. package/src/vault.ts +68 -0
@@ -0,0 +1,90 @@
1
+ import * as pklTypescript from '@pkl-community/pkl-typescript'
2
+ import {
3
+ load as devLoad,
4
+ type Address,
5
+ type Addresses,
6
+ type Field,
7
+ } from '../gen/js/development/basket_eco_packages_config_addresses.pkl'
8
+ import { load as prodLoad } from '../gen/js/production/basket_eco_packages_config_addresses.pkl'
9
+ import { load as stgLoad } from '../gen/js/staging/basket_eco_packages_config_addresses.pkl'
10
+ import { vaultReader } from './vault'
11
+
12
+ let envPath = '../../.env.development'
13
+ if (process.env.BUILD_ENV === 'production') {
14
+ envPath = '/.env'
15
+ } else if (process.env.BUILD_ENV === 'staging') {
16
+ envPath = '../../.env'
17
+ }
18
+ require('dotenv').config({
19
+ path: envPath,
20
+ override: true,
21
+ debug: false,
22
+ quiet: true,
23
+ })
24
+
25
+ export const getAddressesConfig: () => Promise<Addresses> = async () => {
26
+ const evaluator = await pklTypescript.newEvaluator({
27
+ env: {
28
+ BUILD_ENV: process.env.BUILD_ENV || 'development',
29
+ ENTERPRISE_ENV: process.env.ENTERPRISE_ENV || 'development',
30
+ VAULT_TOKEN: process.env.VAULT_TOKEN || '',
31
+ SHOP_ID: process.env.SHOP_ID || '',
32
+ },
33
+ allowedResources: [
34
+ 'http:',
35
+ 'https:',
36
+ 'file:',
37
+ 'env:',
38
+ 'prop:',
39
+ 'modulepath:',
40
+ 'package:',
41
+ 'projectpackage:',
42
+ 'vault:',
43
+ ],
44
+ allowedModules: [
45
+ 'pkl:',
46
+ 'repl:',
47
+ 'file:',
48
+ 'http:',
49
+ 'https:',
50
+ 'modulepath:',
51
+ 'package:',
52
+ 'projectpackage:',
53
+ ],
54
+ projectDir: '../../packages/config/src/pkl/production',
55
+ declaredProjectDependencies: {
56
+ localDependencies: {},
57
+ remoteDependencies: {},
58
+ },
59
+ resourceReaders: [
60
+ {
61
+ scheme: 'vault',
62
+ isGlobbable: false,
63
+ hasHierarchicalUris: false,
64
+ listElements: (uri: URL): any => {
65
+ return []
66
+ },
67
+ read: vaultReader,
68
+ },
69
+ ],
70
+ })
71
+
72
+ let load = devLoad
73
+ let sourcePath = '../../packages/config/src/pkl/development/Addresses.pkl'
74
+
75
+ if (process.env.BUILD_ENV === 'staging') {
76
+ load = stgLoad
77
+ sourcePath = '../../packages/config/src/pkl/staging/Addresses.pkl'
78
+ } else if (process.env.BUILD_ENV === 'production') {
79
+ load = prodLoad
80
+ sourcePath = '../../packages/config/src/pkl/production/Addresses.pkl'
81
+ }
82
+ try {
83
+ const result = await load(evaluator, pklTypescript.FileSource(sourcePath))
84
+ return result
85
+ } finally {
86
+ evaluator.close()
87
+ }
88
+ }
89
+
90
+ export type { Address, Addresses, Field }
@@ -0,0 +1,15 @@
1
+ [request_definition]
2
+ r = sub, dom, obj, act
3
+
4
+ [policy_definition]
5
+ p = sub, dom, obj, act
6
+
7
+ [role_definition]
8
+ g = _, _, _
9
+ g2 = _, _
10
+
11
+ [policy_effect]
12
+ e = some(where (p.eft == allow)) && !some(where (p.eft == deny))
13
+
14
+ [matchers]
15
+ m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && (g2(r.obj, p.obj) || (r.obj == p.obj)) && r.act == p.act
@@ -0,0 +1,26 @@
1
+ p, sales_channel, enterprise, membership:auth:login, allow
2
+ p, sales_channel, enterprise, taxonomy:list, allow
3
+ p, sales_channel, enterprise, membership:auth:login-users, allow
4
+ p, sales_channel, enterprise, membership:auth:login-customers, allow
5
+
6
+
7
+ p, kiosk_admin, enterprise, api_key, read
8
+ p, kiosk_admin, enterprise, api_key, write
9
+ p, kiosk_admin, enterprise, api_key, delete
10
+
11
+ p, sales_channel, enterprise, policies, read
12
+ p, sales_channel, enterprise, policies, write
13
+
14
+ p, kiosk_admin, enterprise, store_details, read
15
+ p, kiosk_admin, enterprise, store_details, write
16
+ p, kiosk_admin, enterprise, membership:auth:add-users, allow
17
+
18
+ p, customer, enterprise, membership:customer:get-profile:basic, allow
19
+
20
+ p, kiosk_admin, enterprise, membership:customer:profile, write
21
+
22
+ g, web, sales_channel, enterprise
23
+ g, api, sales_channel, enterprise
24
+ g, mobile, sales_channel, enterprise
25
+ g, pos, sales_channel, enterprise
26
+
@@ -0,0 +1,61 @@
1
+ import * as pklTypescript from '@pkl-community/pkl-typescript'
2
+ import * as chkModule from './chk'
3
+
4
+ vi.mock('dotenv', () => ({
5
+ config: vi.fn(),
6
+ }))
7
+
8
+ vi.mock('@pkl-community/pkl-typescript', async () => {
9
+ const actual = await vi.importActual<any>('@pkl-community/pkl-typescript')
10
+ return {
11
+ ...actual,
12
+ newEvaluator: vi.fn().mockResolvedValue({
13
+ close: vi.fn(),
14
+ }),
15
+ FileSource: vi.fn(path => path),
16
+ }
17
+ })
18
+
19
+ vi.mock('../gen/js/production/basket_eco_packages_config_checkout.pkl', () => ({
20
+ load: vi.fn(() => Promise.resolve({ test: 'result' })),
21
+ }))
22
+ vi.mock('../gen/js/staging/basket_eco_packages_config_checkout.pkl', () => ({
23
+ load: vi.fn(() => Promise.resolve({ test: 'result' })),
24
+ }))
25
+ vi.mock(
26
+ '../gen/js/development/basket_eco_packages_config_checkout.pkl',
27
+ () => ({
28
+ load: vi.fn(() => Promise.resolve({ test: 'result' })),
29
+ })
30
+ )
31
+
32
+ describe('getCheckoutConfig', () => {
33
+ let evaluatorMock: any
34
+
35
+ beforeEach(() => {
36
+ evaluatorMock = { close: vi.fn() }
37
+ ;(pklTypescript.newEvaluator as any).mockResolvedValue(evaluatorMock)
38
+ })
39
+
40
+ afterEach(() => {
41
+ vi.clearAllMocks()
42
+ })
43
+
44
+ it('should load development config by default', async () => {
45
+ process.env.BUILD_ENV = undefined
46
+ const result = await chkModule.getCheckoutConfig()
47
+ expect(result).toEqual({ test: 'result' })
48
+ })
49
+
50
+ it('should load staging config when BUILD_ENV=staging', async () => {
51
+ process.env.BUILD_ENV = 'staging'
52
+ const result = await chkModule.getCheckoutConfig()
53
+ expect(result).toEqual({ test: 'result' })
54
+ })
55
+
56
+ it('should load production config when BUILD_ENV=production', async () => {
57
+ process.env.BUILD_ENV = 'production'
58
+ const result = await chkModule.getCheckoutConfig()
59
+ expect(result).toEqual({ test: 'result' })
60
+ })
61
+ })
package/src/chk.ts ADDED
@@ -0,0 +1,88 @@
1
+ import * as pklTypescript from '@pkl-community/pkl-typescript'
2
+ import { load as devLoad } from '../gen/js/development/basket_eco_packages_config_checkout.pkl'
3
+ import {
4
+ load as prodLoad,
5
+ type Checkout,
6
+ } from '../gen/js/production/basket_eco_packages_config_checkout.pkl'
7
+ import { load as stgLoad } from '../gen/js/staging/basket_eco_packages_config_checkout.pkl'
8
+ import { vaultReader } from './vault'
9
+
10
+ let envPath = '../../.env.development'
11
+ if (process.env.BUILD_ENV === 'production') {
12
+ envPath = '/.env'
13
+ } else if (process.env.BUILD_ENV === 'staging') {
14
+ envPath = '../../.env'
15
+ }
16
+ require('dotenv').config({
17
+ path: envPath,
18
+ override: true,
19
+ debug: false,
20
+ quiet: true,
21
+ })
22
+
23
+ export const getCheckoutConfig: () => Promise<Checkout> = async () => {
24
+ const evaluator = await pklTypescript.newEvaluator({
25
+ env: {
26
+ BUILD_ENV: process.env.BUILD_ENV || 'development',
27
+ ENTERPRISE_ENV: process.env.ENTERPRISE_ENV || 'development',
28
+ VAULT_TOKEN: process.env.VAULT_TOKEN || '',
29
+ SHOP_ID: process.env.SHOP_ID || '',
30
+ },
31
+ allowedResources: [
32
+ 'http:',
33
+ 'https:',
34
+ 'file:',
35
+ 'env:',
36
+ 'prop:',
37
+ 'modulepath:',
38
+ 'package:',
39
+ 'projectpackage:',
40
+ 'vault:',
41
+ ],
42
+ allowedModules: [
43
+ 'pkl:',
44
+ 'repl:',
45
+ 'file:',
46
+ 'http:',
47
+ 'https:',
48
+ 'modulepath:',
49
+ 'package:',
50
+ 'projectpackage:',
51
+ ],
52
+ projectDir: '../../packages/config/src/pkl/production',
53
+ declaredProjectDependencies: {
54
+ localDependencies: {},
55
+ remoteDependencies: {},
56
+ },
57
+ resourceReaders: [
58
+ {
59
+ scheme: 'vault',
60
+ isGlobbable: false,
61
+ hasHierarchicalUris: false,
62
+ listElements: (uri: URL): any => {
63
+ return []
64
+ },
65
+ read: vaultReader,
66
+ },
67
+ ],
68
+ })
69
+
70
+ let load = devLoad
71
+ let sourcePath = '../../packages/config/src/pkl/development/Checkout.pkl'
72
+
73
+ if (process.env.BUILD_ENV === 'staging') {
74
+ load = stgLoad
75
+ sourcePath = '../../packages/config/src/pkl/staging/Checkout.pkl'
76
+ } else if (process.env.BUILD_ENV === 'production') {
77
+ load = prodLoad
78
+ sourcePath = '../../packages/config/src/pkl/production/Checkout.pkl'
79
+ }
80
+ try {
81
+ const result = await load(evaluator, pklTypescript.FileSource(sourcePath))
82
+ return result
83
+ } finally {
84
+ evaluator.close()
85
+ }
86
+ }
87
+
88
+ export type { Checkout }
@@ -0,0 +1,52 @@
1
+ import * as pklTypescript from '@pkl-community/pkl-typescript'
2
+ import * as cmsModule from './cms'
3
+
4
+ vi.mock('@pkl-community/pkl-typescript', async () => {
5
+ const actual = await vi.importActual<any>('@pkl-community/pkl-typescript')
6
+ return {
7
+ ...actual,
8
+ newEvaluator: vi.fn().mockResolvedValue({ close: vi.fn() }),
9
+ FileSource: vi.fn(path => path),
10
+ }
11
+ })
12
+
13
+ vi.mock('../gen/js/production/basket_eco_packages_config_cms.pkl', () => ({
14
+ load: vi.fn(() => Promise.resolve({ test: 'prod' })),
15
+ }))
16
+ vi.mock('../gen/js/staging/basket_eco_packages_config_cms.pkl', () => ({
17
+ load: vi.fn(() => Promise.resolve({ test: 'stg' })),
18
+ }))
19
+ vi.mock('../gen/js/development/basket_eco_packages_config_cms.pkl', () => ({
20
+ load: vi.fn(() => Promise.resolve({ test: 'dev' })),
21
+ }))
22
+
23
+ describe('getCMSConfig', () => {
24
+ let evaluatorMock: any
25
+
26
+ beforeEach(() => {
27
+ evaluatorMock = { close: vi.fn() }
28
+ ;(pklTypescript.newEvaluator as any).mockResolvedValue(evaluatorMock)
29
+ })
30
+
31
+ afterEach(() => {
32
+ vi.clearAllMocks()
33
+ })
34
+
35
+ it('should load development config by default', async () => {
36
+ process.env.BUILD_ENV = undefined
37
+ const result = await cmsModule.getCMSConfig()
38
+ expect(result).toEqual({ test: 'dev' })
39
+ })
40
+
41
+ it('should load staging config when BUILD_ENV=staging', async () => {
42
+ process.env.BUILD_ENV = 'staging'
43
+ const result = await cmsModule.getCMSConfig()
44
+ expect(result).toEqual({ test: 'stg' })
45
+ })
46
+
47
+ it('should load production config when BUILD_ENV=production', async () => {
48
+ process.env.BUILD_ENV = 'production'
49
+ const result = await cmsModule.getCMSConfig()
50
+ expect(result).toEqual({ test: 'prod' })
51
+ })
52
+ })
package/src/cms.ts ADDED
@@ -0,0 +1,65 @@
1
+ import * as pklTypescript from '@pkl-community/pkl-typescript'
2
+ import {
3
+ load as prodLoad,
4
+ type CMS,
5
+ } from '../gen/js/production/basket_eco_packages_config_cms.pkl'
6
+ import { load as stgLoad } from '../gen/js/staging/basket_eco_packages_config_cms.pkl'
7
+ import { load as devLoad } from '../gen/js/development/basket_eco_packages_config_cms.pkl'
8
+ import { vaultReader } from './vault'
9
+
10
+ export const getCMSConfig: () => Promise<CMS> = async () => {
11
+ const evaluator = await pklTypescript.newEvaluator({
12
+ allowedResources: [
13
+ 'http:',
14
+ 'https:',
15
+ 'file:',
16
+ 'env:',
17
+ 'prop:',
18
+ 'modulepath:',
19
+ 'package:',
20
+ 'projectpackage:',
21
+ 'vault:',
22
+ ],
23
+ allowedModules: [
24
+ 'pkl:',
25
+ 'repl:',
26
+ 'file:',
27
+ 'http:',
28
+ 'https:',
29
+ 'modulepath:',
30
+ 'package:',
31
+ 'projectpackage:',
32
+ ],
33
+ projectDir: '../../packages/config/src/pkl/production',
34
+ declaredProjectDependencies: {
35
+ localDependencies: {},
36
+ remoteDependencies: {},
37
+ },
38
+ resourceReaders: [
39
+ {
40
+ scheme: 'vault',
41
+ isGlobbable: false,
42
+ hasHierarchicalUris: false,
43
+ listElements: (uri: URL): any => {
44
+ return []
45
+ },
46
+ read: vaultReader,
47
+ },
48
+ ],
49
+ })
50
+ try {
51
+ let load = devLoad
52
+ let sourcePath = '../../packages/config/src/pkl/development/CMS.pkl'
53
+ if (process.env.BUILD_ENV === 'staging') {
54
+ load = stgLoad
55
+ sourcePath = '../../packages/config/src/pkl/staging/CMS.pkl'
56
+ } else if (process.env.BUILD_ENV === 'production') {
57
+ load = prodLoad
58
+ sourcePath = '../../packages/config/src/pkl/production/CMS.pkl'
59
+ }
60
+ const result = await load(evaluator, pklTypescript.FileSource(sourcePath))
61
+ return result
62
+ } finally {
63
+ evaluator.close()
64
+ }
65
+ }
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './addresses'
2
+ export * from './chk'
3
+ export * from './cms'
4
+ export * from './shared'
@@ -0,0 +1,21 @@
1
+ amends "pkl:Project"
2
+
3
+ package {
4
+ name = "@paakd/pkl"
5
+ baseUri = "package://paakd.com/\(name)"
6
+ version = "0.0.1"
7
+ packageZipUrl = "https://paakd.com/\(name)/\(name)@\(version).zip"
8
+ }
9
+
10
+ evaluatorSettings {
11
+ allowedResources {
12
+ "vault"
13
+ "env"
14
+ "file"
15
+ }
16
+ externalResourceReaders {
17
+ ["vault"] {
18
+ executable = "packages/config/bin/reader"
19
+ }
20
+ }
21
+ }